Source code for experimentor.lib.log
# -*- coding: utf-8 -*-
"""
Logging Options
===============
Standardizing logging options for experimentor.
:copyright: Aquiles Carattino
:license: MIT, see LICENSE for more details
"""
import logging
import multiprocessing
DEFAULT_FMT = "[%(levelname)8s] %(asctime)s: %(message)s"
[docs]def get_logger(name='experimentor', level=logging.DEBUG):
logger = multiprocessing.get_logger()
logger.setLevel(level)
return logger
# EXPERIMENTOR_LOGGER = get_logger()
[docs]def get_mp_logger(level=logging.DEBUG):
logger = multiprocessing.log_to_stderr()
logger.setLevel(level)
return logger
[docs]def log_to_screen(logger, level=logging.INFO, fmt=None):
fmt = fmt or DEFAULT_FMT
handler = logging.StreamHandler()
handler.setLevel(level)
formatter = logging.Formatter(fmt)
handler.setFormatter(formatter)
# EXPERIMENTOR_LOGGER.addHandler(handler)
logger.addHandler(handler)
return handler
[docs]def log_to_file(filename, level=logging.INFO, fmt=None):
fmt = fmt or DEFAULT_FMT
handler = logging.FileHandler(filename)
handler.setLevel(level)
formatter = logging.Formatter(fmt)
handler.setFormatter(formatter)
# EXPERIMENTOR_LOGGER.addHandler(handler)
return handler