Python logging模块

来源:互联网 发布:c语言编程工具哪个好 编辑:程序博客网 时间:2024/06/05 00:20

用于便捷记录日志且线程安全的模块

1、单文件日志

import logging    logging.basicConfig(filename='log.log',                    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',                    datefmt='%Y-%m-%d %H:%M:%S %p',                    level=10)  logging.debug('debug')logging.info('info')logging.warning('warning')logging.error('error')logging.critical('critical')logging.log(10,'log')

日志等级:

CRITICAL = 50FATAL = CRITICALERROR = 40WARNING = 30WARN = WARNINGINFO = 20DEBUG = 10NOTSET = 0
注:只有【当前写等级】大于【日志等级】时,日志文件才被记录。


日志记录格式:


2、多文件日志

对于上述记录日志的功能,只能将日志记录在单文件中,如果想要设置多个日志文件,logging.basicConfig将无法完成,需要自定义文件和日志操作对象。

日志一:

# 定义文件file_1_1 = logging.FileHandler('l1_1.log', 'a', encoding='utf-8')fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")file_1_1.setFormatter(fmt)file_1_2 = logging.FileHandler('l1_2.log', 'a', encoding='utf-8')fmt = logging.Formatter()file_1_2.setFormatter(fmt)# 定义日志logger1 = logging.Logger('s1', level=logging.ERROR)logger1.addHandler(file_1_1)logger1.addHandler(file_1_2)# 写日志logger1.critical('1111')
# 日志二:# 定义文件file_2_1 = logging.FileHandler('l2_1.log', 'a')fmt = logging.Formatter()file_2_1.setFormatter(fmt)# 定义日志logger2 = logging.Logger('s2', level=logging.INFO)logger2.addHandler(file_2_1)

如上述创建的两个日志对象

  • 当使用【logger1】写日志时,会将相应的内容写入 l1_1.log 和 l1_2.log 文件中
  • 当使用【logger2】写日志时,会将相应的内容写入 l2_1.log 文件中
import loggingclass Logger:    __instance = None    def __init__(self, filename):        # 创建一个logger并设置日志等级        logger = logging.getLogger()        logger.setLevel(logging.DEBUG)        # 创建一个handler用于写入日志文件        handle = logging.FileHandler(filename)        handle.setLevel(logging.DEBUG)        # 定义handler的输出格式(formatter)        fmt = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")        # 给handler添加formatter        handle.setFormatter(fmt)        # 给logger添加handler        logger.addHandler(handle)        self.logger = logger    def info(self, msg):        self.logger.info(msg)



原创粉丝点击