时间:2021-05-22
一、问题描述
在用python开发时经常用到logging这个包,根据官方示例,如果要指定日志级别可以写成如下的方式。
import logginglogging.basicConfig(level=logging.INFO)但是在实际应用中,这种方式有时候会设置不成功,导致无法打印出info及以下级别的日志。一种最直接的解决方式是将这两行代码提到文件的最前面,保证在所有其他import语句之前。
示例如下。
# encoding=utf8import logginglogging.basicConfig(level=logging.INFO)# other importimport ...# your codeif __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失败的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.在application.properties文件中加入logging.level.root=debug全部日志级别设置为debug;这里的root是包的级
如下所示:#coding=utf8importcsvimportlogginglogging.basicConfig(level=logging.DEBUG,f
一、logging模块讲解1.函数:logging.basicConfig()参数讲解:(1)level代表高于或者等于这个值时,那么我们才会记录这条日志(2)
如下所示:logging:config:classpath:spring-logback.xmlpattern:console:"%d-%msg%n"level
遇到win8.1update更新失败怎么办?下文将告诉大家win8.1update升级更新失败解决方法,如果你在升级过程中不慎失败,其实解决方法很简单哦~大