栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

Python 使用 logging 模块添加多输出并设置不同的日志等级

Python 更新时间:发布时间: 百科书网 趣学号
Python 使用 logging 模块添加多输出并设置不同的日志等级

需求:控制台输出简单的执行记录,文件输出详情的执行记录。

Python执行时需要看到执行过程。有些信息太长了直接输出不合适,但又要有记录,可以对不同的输出方式,按照不同的日志等级进行输出。

代码
# 日志记录
import logging
# logging.basicConfig(level = logging.DEBUG,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger("vnc")
logger.setLevel(logging.DEBUG) # 最低日志等级
log_format = logging.Formatter('%(asctime)s|%(name)s|%(levelname)-8s|%(message)s')

# 输出到文件
log_file = logging.FileHandler("get_video.log")
log_file.setLevel(logging.DEBUG)
log_file.setFormatter(log_format)
logger.addHandler(log_file)

# 直接输出显示
log_stream = logging.StreamHandler()
log_stream.setLevel(logging.INFO)
log_stream.setFormatter(log_format)
logger.addHandler(log_stream)

# 测试
logger.debug('Python debug')
logger.info('Python info')
logger.warning('Python warning')
logger.error('Python Error')
logger.critical('Python critical')
输出
  • 控制台:直接输出的内容只有这些,没有debug等级
2022-08-05 19:31:14,486|vnc|INFO    |Python info
2022-08-05 19:31:14,486|vnc|WARNING |Python warning
2022-08-05 19:31:14,486|vnc|ERROR   |Python Error
2022-08-05 19:31:14,486|vnc|CRITICAL|Python critical
  • 文件:输出到文件的日志有debug等级
2022-08-05 19:31:14,484|vnc|DEBUG   |Python debug
2022-08-05 19:31:14,486|vnc|INFO    |Python info
2022-08-05 19:31:14,486|vnc|WARNING |Python warning
2022-08-05 19:31:14,486|vnc|ERROR   |Python Error
2022-08-05 19:31:14,486|vnc|CRITICAL|Python critical
后记
  • 代码中 logging.basicConfig(...) 启用会造成输出混乱;
  • logger.setLevel() 对低于该等级的日志丢弃,再转发给 FileHandler 和 StreamHandler ,因此该等级必须最低;
  • 未 setLevel() 时不会输出低等级的日志;
  • logging.Formatter('%(levelname)-8s') 中 -8 指定填充该字段的长度,但不会进行截断;
  • 原先的 print(str(),int()) 要改为 logger.debug(str(),+str(int())) 。
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1033452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号