python logging使用方法

使用默认记录器(小程序调试用简单,复杂程序不推荐)

网上有懒得写了。下面网站有示例。

使用自定义记录器(正式程序推荐)

直接贴代码

#logging 0.4.9.6 python 3.11.0
import logging
#创建记录器,定义一个名字<*1>
iLog = logging.getLogger('iLog')

#创建处理器
logf = 'chzLog/chzlogfile1.log'
if path.exists("chzLog") is False:
        mkdir('chzLog')
ifL = logging.FileHandler(logf,mode = 'a',encoding='utf-8')
isL = logging.StreamHandler()
#设置级别
iLog.setLevel(logging.DEBUG)# <*2>   
# critical > error > warning > info > debug<*3>
ifL.setLevel(logging.WARNING)
isL.setLevel(logging.INFO)
#设置格式
iLogm = logging.Formatter('%(asctime)s + %(filename)s /L %(lineno)d : %(message)s')
ifL.setFormatter(iLogm)
isL.setFormatter(iLogm)
#将处理器绑定给记录器
iLog.addHandler(ifL)
iLog.addHandler(isL)

# logging.critical('测试测试critical')
# logging.error('测试测试error')
# logging.warning('测试测试warning')
# logging.info('测试测试info')
# logging.debug('测试测试debug')

iLog.critical('测试测试critical')
iLog.error('测试测试error')
iLog.warning('测试测试warning')
iLog.info('测试测试info')
iLog.debug('测试测试debug')

*1自定义的logger是默认logger的子级,每次getlogger会根据名字创建,如果已有重复的仅第一次定义生效,可防止重复定义
*2记录器最低阈值阈值,默认warning,必须设置,若不设置,不论后面处理器设置多少登记最低只能识别到warining
*3 重要级别从高到低critical > error > warning > info > debug高于设定级别阈值的才会由处理器处理
*4 如果创建了自定义的 Logger 对象,就不要在用 logging 中的日志输出方法了,这些方法使用的是默认配置的 Logger 对象
这个问题我自己出错过,定义了以后,使用时错用了默认的logging.DEBUG(‘balabala’),导致输出一致和期望的不一致。
等多细节见网站https://docs.python.org/zh-cn/3/library/logging.html#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值