摘要
本文介绍了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、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。