首页 > 编程语言 > 详细

python logging

时间:2019-02-16 18:51:03      阅读:324      评论:0      收藏:0      [点我收藏+]
class TNLog(object):
    def __init__(self, log_dir, context, verbose):
        if not os.path.exists(log_dir):
            os.mkdir(log_dir)

        self.context = context
        self.log_dir = log_dir
        self.verbose = verbose

        self._create_logger()

    def _create_logger(self):
        """create logger"""
        self.loggers = {}

        handlers = {logging.DEBUG: os.path.join(self.log_dir, ‘DEBUG.log‘),
                    logging.INFO: os.path.join(self.log_dir, ‘INFO.log‘),
                    logging.WARNING: os.path.join(self.log_dir, ‘WARNING.log‘),
                    logging.ERROR: os.path.join(self.log_dir, ‘ERROR.log‘)}
        levels = handlers.keys()
        for level in levels:
            logger = logging.getLogger(str(level))
            logger.setLevel(level)
            formatter = logging.Formatter(
                ‘%(asctime)s-%(levelname)s:‘ + self.context + ‘:[%(filename)s:%(lineno)3d]:%(message)s‘,
                datefmt=‘%Y-%m-%d %H:%M:%S‘)

            file_handler = logging.FileHandler(handlers[level], encoding=‘utf-8‘)
            file_handler.setLevel(level)
            file_handler.setFormatter(formatter)
            logger.handlers = []
            logger.addHandler(file_handler)

            self.loggers[level] = logger

    def info(self, msg):
        """
        log info level
        :param msg: log message
        :return:
        """
        print(self._time+‘-INFO:%s:%s‘ % (self.context, msg), flush=True)
        self.loggers[logging.INFO].info(msg)

    def error(self, msg):
        """
        log error level
        :param msg: log message
        :return:
        """
        print(self._time+‘-ERROR:%s:%s‘ % (self.context, msg), flush=True)
        self.loggers[logging.ERROR].error(msg)

    def debug(self, msg):
        """
        log debug level
        :param msg: log message
        :return:
        """
        if self.verbose:
            print(self._time+‘-DEBUG:%s:%s‘ % (self.context, msg), flush=True)
        self.loggers[logging.DEBUG].debug(msg)

    def warning(self, msg):
        """
        log warning level
        :param msg: log message
        :return:
        """
        print(self._time + ‘-ERROR:%s:%s‘ % (self.context, msg), flush=True)
        self.loggers[logging.WARNING].error(msg)

    @property
    def _time(self):
        return time.strftime(‘%Y-%m-%d %H:%M:%S‘, time.localtime())

 

python logging

原文:https://www.cnblogs.com/callyblog/p/10388543.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!