Skip to content

Commit 8e12deb

Browse files
committed
fix: distributed logging configuration now enabled
1 parent a8eef97 commit 8e12deb

File tree

4 files changed

+42
-26
lines changed

4 files changed

+42
-26
lines changed

nipype/pipeline/plugins/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ def _submit_job(self, node, updatehash=False):
461461
from nipype import config, logging
462462
config_dict=%s
463463
config.update_config(config_dict)
464+
logging.update_logging(config)
464465
from nipype.utils.filemanip import loadpkl, savepkl
465466
"""
466467

nipype/pipeline/plugins/ipython.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@
1818
def execute_task(pckld_task, node_config, updatehash):
1919
from socket import gethostname
2020
from traceback import format_exc
21-
from nipype import config
22-
config.update_config(node_config)
23-
from cPickle import loads
24-
task = loads(pckld_task)
21+
from nipype import config, logging
2522
traceback=None
2623
result=None
2724
try:
25+
config.update_config(node_config)
26+
logging.update_logging(config)
27+
from cPickle import loads
28+
task = loads(pckld_task)
2829
result = task.run(updatehash=updatehash)
2930
except:
3031
traceback = format_exc()

nipype/utils/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
workflow_level = INFO
2525
filemanip_level = INFO
2626
interface_level = INFO
27-
log_to_file = true
27+
log_to_file = false
2828
log_directory = %s
2929
log_size = 16384000
3030
log_rotate = 4

nipype/utils/logger.py

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,39 +22,53 @@ class Logging(object):
2222
'%(levelname)-2s:\n\t %(message)s')
2323
datefmt = '%y%m%d-%H:%M:%S'
2424
def __init__(self, config):
25+
self._config = config
2526
logging.basicConfig(format=self.fmt, datefmt=self.datefmt,
2627
stream=sys.stdout)
2728
#logging.basicConfig(stream=sys.stdout)
2829
self._logger = logging.getLogger('workflow')
2930
self._fmlogger = logging.getLogger('filemanip')
3031
self._iflogger = logging.getLogger('interface')
3132

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')))
3833
self.loggers = {'workflow': self._logger,
3934
'filemanip': self._fmlogger,
4035
'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
4153

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')))
4569
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()
5872

5973
def getLogger(self, name):
6074
if name in self.loggers:

0 commit comments

Comments
 (0)