Python 二次封装logging模块

import os
import time
import logging


class MyLogger(object):
    def __init__(self):
        # 第一步: 创建一个日志收集器对象logger
        self.logger = logging.getLogger("my_logger")
        self.logger.setLevel(logging.DEBUG)

        # 第二步: 创建日志输出渠道,并设置等级
        # 1. 输出到控制台
        sh = logging.StreamHandler()
        sh.setLevel(logging.INFO)
        # 2. 输出到日志文件
        rq = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime((time.time())))
        log_name = rq + '.log'
        log_path = os.path.join(os.path.abspath('../'), 'log', log_name)
        fh = logging.FileHandler(log_path)
        fh.setLevel(logging.INFO)

        # 第三步:指定日志输出格式
        formatter = logging.Formatter("[%(asctime)s][%(filename)s-->line:%(lineno)d][%(levelname)s] %(message)s")
        sh.setFormatter(formatter)
        fh.setFormatter(formatter)

        # 第四步: 添加日志输出渠道到日志收集器中
        self.logger.addHandler(sh)
        self.logger.addHandler(fh)

        return self.logger


# 创建一个日志收集器对象
my_logger = MyLogger()

你可能感兴趣的:(Python 二次封装logging模块)