Python常用系统类库之logging日志

107 阅读2分钟

摘要

本文介绍了python的系统类库logging日志处理的使用方式,分别从控制台、文件输出的日志级别、过滤、日志保留期限、日期格式化展开说明,让我们看代码。

前提条件

  • 导入类库
import logging
import logging.handlers
  • 设置文件编码utf-8

图片

代码示例

1.创建日志器

logger = logging.getLogger('我的日志器名称')
logger.setLevel(logging.DEBUG)  # 设置全局日志级别为 DEBUG

2.创建文件日志处理器,指定日志文件名并设置编码格式

fh = logging.FileHandler('info_log.log', encoding='utf-8')
fh.setLevel(logging.INFO)  # 设置文件日志处理器的日志级别为 INFO

3.添加日志过滤器

class InfoFilter(logging.Filter):
    def filter(self, record):
        return record.levelno == logging.INFO #  只记录INFO级别的日志
fh.addFilter(InfoFilter())

4.创建控制台日志处理器

ch = logging.StreamHandler()
ch.setLevel(logging.WARNING)  # 设置控制台日志处理器的日志级别为 WARNING

 

5.使用日志轮转,创建 RotatingFileHandler,设置最大日志文件大小(例如:10MB)和备份数量

rfh = logging.handlers.RotatingFileHandler(
    'rotating_test_log.log',
    maxBytes=10 * 1024 * 1024,  # 10MB
    backupCount=5,  # 最多保留5个日志文件
    encoding='utf-8'
)
rfh.setLevel(logging.ERROR)  # 设置轮转日志处理器的日志级别为 ERROR,也会记录CRITICAL级别的日志

6.创建日志格式化器,并设置日志处理器的格式化器

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
rfh.setFormatter(formatter)

7.添加日志处理器到日志器

logger.addHandler(fh)
logger.addHandler(ch)
logger.addHandler(rfh)

8.测试日志记录

logger.debug('这是一个 debug 信息')
logger.info('这是一个 info 信息')
logger.warning('这是一个 warning 信息')
logger.error('这是一个 error 信息')
logger.critical('这是一个 critical 信息')
  • 结果展示

图片

总结

以上我们了解了python的系统类库logging日志处理的使用方式,分别从控制台打印、文件输出,及其日志级别设置、内容过滤、日志保留期限、日期格式化等方面切入代码示例说明。

关注公众号:咖啡Beans

在这里,我们专注于软件技术的交流与成长,分享开发心得与笔记,涵盖编程、AI、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。