diff --git a/cp2kdata/log.py b/cp2kdata/log.py index 928d4c0..352560b 100644 --- a/cp2kdata/log.py +++ b/cp2kdata/log.py @@ -1,16 +1,30 @@ import logging import os +_LOGGER_NAME = "cp2kdata" + level_name = os.environ.get('CP2KDATA_LOG_LEVEL', 'INFO') level = logging._nameToLevel.get(level_name, logging.INFO) -# format to include timestamp and module -if level_name == 'DEBUG': - logging.basicConfig(format='CP2KDATA| %(asctime)s - %(levelname)-8s %(name)-40s: %(message)s', level=level) -else: - logging.basicConfig(format='CP2KDATA| %(message)s', level=level) -# suppress transitions logging -# logging.getLogger('transitions.core').setLevel(logging.WARNING) +logger = logging.getLogger(_LOGGER_NAME) +logger.setLevel(level) +logger.propagate = False # do NOT touch root logger + +if not logger.handlers: + handler = logging.StreamHandler() + + if level_name == "DEBUG": + formatter = logging.Formatter( + "CP2KDATA| %(asctime)s - %(levelname)-8s %(name)-40s: %(message)s" + ) + else: + formatter = logging.Formatter("CP2KDATA| %(message)s") + + handler.setFormatter(formatter) + logger.addHandler(handler) + def get_logger(name=None): - return logging.getLogger(name) \ No newline at end of file + if name: + return logging.getLogger(f"{_LOGGER_NAME}.{name}") + return logger