首页 > 编程语言 > 详细

python logging

时间:2019-02-16 18:51:03      阅读:319      评论: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 版权所有
打开技术之扣,分享程序人生!