logging--日志打印模块

#logging日志打印模块

import logging
from tools.project_path import *

class MyLog:
    def my_log(self,msg,level):
        # 定义一个日志收集器
        my_logger = logging.getLogger()
        # 设定级别   不指定级别会默认收集和输出warning级别以上的
        my_logger.setLevel("DEBUG")
        # 设置输出格式
        formatter = logging.Formatter(
            "%(asctime)s -%(levelname)s - %(filename)s[line:%(lineno)d] %(levelname)s-日志信息:%(message)s")
        # 创建一个我们自己的输出渠道控制台
        ch = logging.StreamHandler()
        ch.setLevel("DEBUG")
        ch.setFormatter(formatter)
        # 指定输出到文件(追加写入)
        fh = logging.FileHandler(log_path, encoding="utf-8")
        fh.setLevel("DEBUG")
        fh.setFormatter(formatter)
        # 两者对接
        my_logger.addHandler(ch)
        my_logger.addHandler(fh)
        # 收集日志
        if level == "DEBUG":
            my_logger.debug(msg)
        elif level == "INFO":
            my_logger.info(msg)
        elif level == "WARNING":
            my_logger.warning(msg)
        elif level == "ERROR":
            my_logger.error(msg)
        elif level == "CRITICAL":
            my_logger.critical(msg)
        #关闭日志收集器
        my_logger.removeHandler(ch)
        my_logger.removeHandler(fh)

    def debug(self,msg):
        self.my_log(msg,"DEBUG")

    def info(self,msg):
        self.my_log(msg,"INFO")

    def warning(self,msg):
        self.my_log(msg,"WARNING")

    def error(self,msg):
        self.my_log(msg,"ERROR")

    def critical(self,msg):
        self.my_log(msg,"CRITICAL")


if __name__ == '__main__':
    my_logger = MyLog()
    my_logger.debug("1")
    my_logger.info("2")
    my_logger.error("3")

 

posted @ 2020-04-14 21:34  反着来就对了  阅读(231)  评论(0编辑  收藏  举报