Source code for obci_readmanager.signal_processing.logging
# -*- coding: utf-8 -*-
# Copyright (c) 2016-2018 Braintech Sp. z o.o. [Ltd.] <http://www.braintech.pl>
# All rights reserved.
"""Module defines a single method get_logger that returns logger with set logging level."""
import logging
LEVELS = {'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'error': logging.ERROR,
'critical': logging.CRITICAL}
[docs]def get_logger(p_name, p_level='info'):
"""
Return logger with p_name as name. And logging level p_level.
p_level should be in (starting with the most talkactive): 'debug', 'info', 'warning', 'error', 'critical'.
"""
logger = logging.getLogger(p_name)
if len(logger.handlers) == 0:
# Some module migh be imported few times. In every get_logger call
# with p_name = "X" we return the same instance of logger, bu we must
# ensure, that the logger has no more than one handler.
handler = logging.StreamHandler()
level = LEVELS[p_level]
logger.setLevel(level)
handler.setLevel(level)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger