diff --git a/eos/__main__.py b/eos/__main__.py index b8a6e1b..c3fff27 100644 --- a/eos/__main__.py +++ b/eos/__main__.py @@ -10,7 +10,7 @@ import logging # need to do absolute import here as pyinstaller requires it from eos.options import ReflectivityConfig, ReaderConfig, ExperimentConfig, ReflectivityReductionConfig, ReflectivityOutputConfig from eos.command_line import commandLineArgs -from eos.logconfig import setup_logging, update_loglevel +from eos.logconfig import setup_logging, update_loglevel, setup_logfile def main(): @@ -27,6 +27,8 @@ def main(): output_config = ReflectivityOutputConfig.from_args(clas) config = ReflectivityConfig(reader_config, experiment_config, reduction_config, output_config) + if output_config.logFile: + setup_logfile() logging.warning('######## eos - data reduction for Amor ########') # only import heavy module if sufficient command line parameters were provided diff --git a/eos/logconfig.py b/eos/logconfig.py index b93b104..6893d81 100644 --- a/eos/logconfig.py +++ b/eos/logconfig.py @@ -6,7 +6,7 @@ import logging import logging.handlers def setup_logging(): - logger = logging.getLogger() # logging.getLogger('quicknxs') + logger = logging.getLogger() logger.setLevel(logging.DEBUG) # rename levels to make clear warning is can be a normal message logging.addLevelName(logging.INFO, 'VERB') @@ -19,18 +19,22 @@ def setup_logging(): console.setLevel(logging.WARNING) logger.addHandler(console) - # if os.path.exists('amor_eos.log'): - # rollover = True - # else: - # rollover = False - logfile = logging.handlers.RotatingFileHandler('amor_eos.log', encoding='utf8', mode='w', - maxBytes=200*1024**2, backupCount=20) - # if rollover: logfile.doRollover() + +def setup_logfile(): + logfile = logging.handlers.RotatingFileHandler( + 'amor_eos.log', + encoding='utf8', + mode='w', + maxBytes=200*1024**2, + backupCount=20, + ) formatter = logging.Formatter( - '[%(levelname).4s] - %(asctime)s - %(filename)s:%(lineno)i:%(funcName)s %(message)s', - '') + '[%(levelname).4s] - %(asctime)s - %(filename)s:%(lineno)i:%(funcName)s %(message)s', + '', + ) logfile.setFormatter(formatter) logfile.setLevel(logging.DEBUG) + logger = logging.getLogger() logger.addHandler(logfile) def update_loglevel(verbose=0): diff --git a/eos/options.py b/eos/options.py index 233e41e..7f56a55 100644 --- a/eos/options.py +++ b/eos/options.py @@ -526,6 +526,13 @@ class ReflectivityOutputConfig(ArgParsable): 'help': '?', }, ) + logFile: bool = field( + default = False, + metadata = { + 'group': 'output', + 'help': 'write log file "amor_eos.log"', + } + ) plot: bool = field( default=False, metadata={