Source code for jobman.utils.logging_utils

from pathlib import Path
import logging


[docs]def generate_logger(logging_cfg=None): logging_cfg = logging_cfg or {} logger = ( logging_cfg.get('logger') or logging.getLogger(logging_cfg.get('name', __name__)) ) log_file = logging_cfg.get('log_file') if log_file: file_handler = logging.FileHandler(Path(log_file).expanduser()) logger.addHandler(file_handler) if not logging_cfg.get('no_stream_handler'): logger.addHandler(logging.StreamHandler()) level = logging_cfg.get('level') or 'INFO' if level: logger.setLevel(getattr(logging, level)) formatter = logging.Formatter( logging_cfg.get('format') or '| %(asctime)s | %(name)s | %(levelname)s |\n%(message)s\n' ) for handler in logger.handlers: handler.setFormatter(formatter) return logger