没有合适的资源?快使用搜索试试~ 我知道了~
python logging设置level失败的解决方法
0 下载量 163 浏览量
2020-12-20
13:58:14
上传
评论
收藏 39KB PDF 举报
温馨提示
试读
1页
一、问题描述 在用python开发时经常用到logging这个包,根据官方示例,如果要指定日志级别可以写成如下的方式。 import logging logging.basicConfig(level=logging.INFO) 但是在实际应用中,这种方式有时候会设置不成功,导致无法打印出info及以下级别的日志。一种最直接的解决方式是将这两行代码提到文件的最前面,保证在所有其他import语句之前。 示例如下。 # encoding=utf8 import logging logging.basicConfig(level=logging.INFO) # other import imp
资源推荐
资源详情
资源评论
python logging设置设置level失败的解决方法失败的解决方法
一、问题描述一、问题描述
在用python开发时经常用到logging这个包,根据官方示例,如果要指定日志级别可以写成如下的方式。
import logging
logging.basicConfig(level=logging.INFO)
但是在实际应用中,这种方式有时候会设置不成功,导致无法打印出info及以下级别的日志。一种最直接的解决方式是将这两
行代码提到文件的最前面,保证在所有其他import语句之前。
示例如下。
# encoding=utf8
import logging
logging.basicConfig(level=logging.INFO)
# other import
import ...
# your code
if __name__ == '__main__':
pass
二、问题解释二、问题解释
basicConfig函数的部分源码如下:
def basicConfig(**kwargs):
_acquireLock()
try:
if len(root.handlers) == 0:
filename = kwargs.get("filename")
if filename:
mode = kwargs.get("filemode", 'a')
hdlr = FileHandler(filename, mode)
else:
stream = kwargs.get("stream")
hdlr = StreamHandler(stream)
fs = kwargs.get("format", BASIC_FORMAT)
dfs = kwargs.get("datefmt", None)
fmt = Formatter(fs, dfs)
hdlr.setFormatter(fmt)
root.addHandler(hdlr)
level = kwargs.get("level")
if level is not None:
root.setLevel(level)
finally:
_releaseLock()
在代码里首先会判断一下root.handlers长度是否为0,如果不为0才新生成一个hander,并设置level。
如果在代码里调用这个函数之前,import了其他包,并且这些包里面也引用了logging这个包,就可能导致设置不成功。
logging包的默认日志级别为logging.UNSET,在这个日志级别只会打印warn及以上级别的日志。
以上这篇python logging设置level失败的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多
多支持软件开发网。
您可能感兴趣的文章您可能感兴趣的文章:python logging.basicConfig不生效的原因及解决logging level级别介绍在python中logger setlevel没有生
效的解决
资源评论
weixin_38621630
- 粉丝: 3
- 资源: 914
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功