Skip to content

Commit 102f688

Browse files
committed
enh: allow disabling logging to a file
1 parent 3bfb3d7 commit 102f688

File tree

4 files changed

+32
-13
lines changed

4 files changed

+32
-13
lines changed

doc/users/config_file.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ Logging
2323
*interface_level*
2424
How detailed the logs regarding interface execution should be (possible
2525
values: ``INFO`` and ``DEBUG``; default value: ``INFO``)
26+
*log_to_file*
27+
Indicates whether logging should also send the output to a file (possible
28+
values: ``true`` and ``false``; default value: ``true``)
2629
*log_directory*
2730
Where to store logs. (string, default value: home directory)
2831
*log_size*

examples/fsl_tutorial_compact.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
22
# vi: set ft=python sts=4 ts=4 sw=4 et:
33
"""
4-
===========================
5-
Using FSL for fMRI analysis
6-
===========================
4+
=======================================
5+
Reusing FSL workflows for fMRI analysis
6+
=======================================
77
88
A workflow that uses fsl to perform a first level analysis on the nipype
99
tutorial data set::
@@ -16,6 +16,15 @@
1616

1717
import os # system functions
1818

19+
"""
20+
.. note::
21+
config for logging should be set before anything else
22+
"""
23+
24+
from nipype.utils.config import config
25+
config.set('logging', 'log_to_file', 'false')
26+
config.set_log_dir(os.getcwd())
27+
1928
import nipype.interfaces.io as nio # Data i/o
2029
import nipype.interfaces.fsl as fsl # fsl
2130
import nipype.interfaces.utility as util # utility

nipype/utils/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
workflow_level = INFO
1919
filemanip_level = INFO
2020
interface_level = INFO
21+
log_to_file = true
2122
log_directory = %s
2223
log_size = 16384000
2324
log_rotate = 4

nipype/utils/logger.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,33 @@
1212
warn("ConcurrentLogHandler not installed. Using builtin log handler")
1313
from logging.handlers import RotatingFileHandler as RFHandler
1414
from nipype.utils.config import config
15+
from nipype.utils.misc import str2bool
1516

1617
#Sets up logging for pipeline and nodewrapper execution
1718
LOG_FILENAME = os.path.join(config.get('logging', 'log_directory'),
1819
'pypeline.log')
20+
fmt=('%(asctime)s,%(msecs)d %(name)-2s '
21+
'%(levelname)-2s:\n\t %(message)s')
22+
datefmt='%y%m%d-%H:%M:%S'
23+
#logging.basicConfig(format=fmt, datefmt=datefmt, stream=sys.stdout)
1924
logging.basicConfig(stream=sys.stdout)
2025
logger = logging.getLogger('workflow')
2126
fmlogger = logging.getLogger('filemanip')
2227
iflogger = logging.getLogger('interface')
23-
hdlr = RFHandler(LOG_FILENAME,
24-
maxBytes=int(config.get('logging', 'log_size')),
25-
backupCount=int(config.get('logging', 'log_rotate')))
26-
formatter = logging.Formatter(fmt=('%(asctime)s,%(msecs)d %(name)-2s '
27-
'%(levelname)-2s:\n\t %(message)s'),
28-
datefmt='%y%m%d-%H:%M:%S')
29-
hdlr.setFormatter(formatter)
30-
logger.addHandler(hdlr)
28+
29+
if str2bool(config.get('logging', 'log_to_file')):
30+
hdlr = RFHandler(LOG_FILENAME,
31+
maxBytes=int(config.get('logging', 'log_size')),
32+
backupCount=int(config.get('logging', 'log_rotate')))
33+
formatter = logging.Formatter(fmt=fmt, datefmt=datefmt)
34+
hdlr.setFormatter(formatter)
35+
logger.addHandler(hdlr)
36+
fmlogger.addHandler(hdlr)
37+
iflogger.addHandler(hdlr)
38+
3139
logger.setLevel(logging.getLevelName(config.get('logging', 'workflow_level')))
32-
fmlogger.addHandler(hdlr)
3340
fmlogger.setLevel(logging.getLevelName(config.get('logging',
3441
'filemanip_level')))
35-
iflogger.addHandler(hdlr)
3642
iflogger.setLevel(logging.getLevelName(config.get('logging',
3743
'interface_level')))
3844

0 commit comments

Comments
 (0)