Source code for ecpi.logger_ecpi

'''
Created on 29 juil. 2019

@author: Colley Jean-Marc
'''

import logging
import datetime


DICT_LEVELS = {
    'debug': logging.DEBUG,
    'info': logging.INFO,
    'warning': logging.WARNING,
    'error': logging.ERROR,
    'critical': logging.CRITICAL
}


[docs]def check_logger_level(str_level): """Check the validity of the logger level specified in simu_config and choose the appropriate one. """ try: return DICT_LEVELS[str_level] except: return DICT_LEVELS['warning']
[docs]class ECPILogger(object): def __init__(self, cfg=None): """**Constructor** :param cfg: configuration container from the configuration file :type cfg: ConfigParser """ if cfg is not None: log_level = check_logger_level(cfg['general']['logger_level']) else: log_level = logging.WARNING self.logger = logging.getLogger('ecpi') self.logger.setLevel(log_level) self.log_level = log_level fh = logging.FileHandler('simu_channel.log', mode='w') fh.setLevel(self.log_level) ch = logging.StreamHandler() ch.setLevel(self.log_level) formatter = logging.Formatter('%(asctime)s#%(levelname)s[%(lineno)d]%(name)s: %(message)s','%H:%M:%S.%f') fh.setFormatter(formatter) ch.setFormatter(formatter) self.logger.addHandler(fh) self.logger.addHandler(ch) self.filehandler = fh self.streamhandler = ch
[docs] def message_start(self): self.logger.info('===========> Start at '+ get_now_string())
[docs] def message_end(self): self.logger.info('===========> End at '+ get_now_string())
[docs]def get_logger_path(pfile): """ /home/user/projet/ECLAIRs/ecpi/simu/pipeline/eclairs_channel_simu_case.py .. warning: dead code """ p_ecpi = __file__.find('/ecpi/') if p_ecpi ==None: return None g_str = pfile[p_ecpi+1:-3].replace('/','.') return g_str
[docs]def get_now_string(): """ .. warning: dead code """ return datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ')