@@ -22,39 +22,53 @@ class Logging(object):
22
22
'%(levelname)-2s:\n \t %(message)s' )
23
23
datefmt = '%y%m%d-%H:%M:%S'
24
24
def __init__ (self , config ):
25
+ self ._config = config
25
26
logging .basicConfig (format = self .fmt , datefmt = self .datefmt ,
26
27
stream = sys .stdout )
27
28
#logging.basicConfig(stream=sys.stdout)
28
29
self ._logger = logging .getLogger ('workflow' )
29
30
self ._fmlogger = logging .getLogger ('filemanip' )
30
31
self ._iflogger = logging .getLogger ('interface' )
31
32
32
- self ._logger .setLevel (logging .getLevelName (config .get ('logging' ,
33
- 'workflow_level' )))
34
- self ._fmlogger .setLevel (logging .getLevelName (config .get ('logging' ,
35
- 'filemanip_level' )))
36
- self ._iflogger .setLevel (logging .getLevelName (config .get ('logging' ,
37
- 'interface_level' )))
38
33
self .loggers = {'workflow' : self ._logger ,
39
34
'filemanip' : self ._fmlogger ,
40
35
'interface' : self ._iflogger }
36
+ self .update_logging (self ._config )
37
+ self ._hdlr = None
38
+
39
+ def enable_file_logging (self ):
40
+ config = self ._config
41
+ LOG_FILENAME = os .path .join (config .get ('logging' , 'log_directory' ),
42
+ 'pypeline.log' )
43
+ hdlr = RFHandler (LOG_FILENAME ,
44
+ maxBytes = int (config .get ('logging' , 'log_size' )),
45
+ backupCount = int (config .get ('logging' ,
46
+ 'log_rotate' )))
47
+ formatter = logging .Formatter (fmt = self .fmt , datefmt = self .datefmt )
48
+ hdlr .setFormatter (formatter )
49
+ self ._logger .addHandler (hdlr )
50
+ self ._fmlogger .addHandler (hdlr )
51
+ self ._iflogger .addHandler (hdlr )
52
+ self ._hdlr = hdlr
41
53
42
- def add_file_handler (self , config = None ):
43
- if config is None :
44
- config = NipypeConfig ()
54
+ def disable_file_logging (self ):
55
+ if self ._hdlr :
56
+ self ._logger .removeHandler (self ._hdlr )
57
+ self ._fmlogger .removeHandler (self ._hdlr )
58
+ self ._iflogger .removeHandler (self ._hdlr )
59
+ self ._hdlr = None
60
+
61
+ def update_logging (self , config ):
62
+ self ._config = config
63
+ self ._logger .setLevel (logging .getLevelName (config .get ('logging' ,
64
+ 'workflow_level' )))
65
+ self ._fmlogger .setLevel (logging .getLevelName (config .get ('logging' ,
66
+ 'filemanip_level' )))
67
+ self ._iflogger .setLevel (logging .getLevelName (config .get ('logging' ,
68
+ 'interface_level' )))
45
69
if str2bool (config .get ('logging' , 'log_to_file' )):
46
- LOG_FILENAME = os .path .join (config .get ('logging' , 'log_directory' ),
47
- 'pypeline.log' )
48
- hdlr = RFHandler (LOG_FILENAME ,
49
- maxBytes = int (config .get ('logging' , 'log_size' )),
50
- backupCount = int (config .get ('logging' ,
51
- 'log_rotate' )))
52
- formatter = logging .Formatter (fmt = self .fmt , datefmt = self .datefmt )
53
- hdlr .setFormatter (formatter )
54
- self ._logger .addHandler (hdlr )
55
- self ._fmlogger .addHandler (hdlr )
56
- self ._iflogger .addHandler (hdlr )
57
- self ._hdlr = hdlr
70
+ self .disable_file_logging ()
71
+ self .enable_file_logging ()
58
72
59
73
def getLogger (self , name ):
60
74
if name in self .loggers :
0 commit comments