<强>一、问题描述强>
在用python开发时经常用到日志这个包,根据官方示例,如果要指定日志级别可以写成如下的方式。
导入日志 logging.basicConfig(水平=logging.INFO)
但是在实际应用中,这种方式有时候会设置不成功,导致无法打印出信息及以下级别的日志。一种最直接的解决方式是将这两行代码提到文件的最前面,保证在所有其他导入语句之前。
示例如下。
#=utf8编码 导入日志 logging.basicConfig(水平=logging.INFO) #其他进口 进口… #你的代码 if __name__==癬_main__”: 通过
<强>二,问题解释强>
basicConfig函数的部分源码如下:
def basicConfig (* * kwargs): _acquireLock () 试一试: 如果len (root.handlers)==0: 文件名=kwargs.get(“文件”) 如果文件名:=kwargs模式。(“filemode”、“a”) hdlr=文件句柄(文件名,模式) 其他: 流=kwargs.get(“流”) hdlr=StreamHandler(流) fs=kwargs。(“格式”,BASIC_FORMAT) dfs=kwargs。(“datefmt”,没有一个) fmt=格式化程序(fs, dfs) hdlr.setFormatter (fmt) root.addHandler (hdlr) 水平=kwargs.get(水平) 如果水平不没有: root.setLevel(高度) 最后: _releaseLock ()
在代码里首先会判断一下root.handlers长度是否为0,如果不为0才新生成一个夹头,并设置水平。
如果在代码里调用这个函数之前,进口了其他包,并且这些包里面也引用了日志这个包,就可能导致设置不成功。
日志包的默认日志级别为logging.UNSET,在这个日志级别只会打印警告及以上级别的日志。
python以上这篇日志设置水平失败的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。