介绍
这篇文章主要讲解了Python给函数库增加日志功能的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
<强>问题强>
你想给某个函数库增加日志功能,但是又不能影响到那些不使用日志功能的程序。
<强>解决方案强>
对于想要执行日志操作的函数库而已,你应该创建一个专属的记录器对象,并且像下面这样初始化配置:
# somelib.py 导入日志 日志=logging.getLogger (__name__) log.addHandler (logging.NullHandler ()) #例子函数(用于测试) def func (): log.critical(& # 39;一个关键错误! & # 39;) log.debug(& # 39;一个调试消息# 39;)
使用这个配置,默认情况下不会打印日志,例如:
在祝辞祝辞进口somelib 在在在somelib.func () 祝辞祝辞祝辞
不过,如果配置过日志系统,那么日志消息打印就开始生效,例如:
在祝辞祝辞导入日志 在在在logging.basicConfig () 在在在somelib.func () 关键:somelib:关键错误! 祝辞祝辞祝辞
<>强讨论强>
通常来讲,你不应该在函数库代码中自己配置日志系统,或者是已经假定有个已经存在的日志配置了。
调用<代码> getlog (__name__) 代码>创建一个和调用模块同名的记录器模块。由于模块都是唯一的,因此创建的记录器也将是唯一的。
<代码> log.addHandler (logging.NullHandler())> 代码操作将一个空处理器绑定到刚刚已经创建好的记录器对象上。一个空处理器默认会忽略调用所有的日志消息,因此,如果使用该函数库的时候还没有配置日志,那么将不会有消息或警告出现。
还有一点就是对于各个函数库的日志配置可以是相互独立的,不影响其他库的日志配置,例如,对于如下的代码:
在祝辞祝辞导入日志 在在在logging.basicConfig(水平=logging.ERROR) 在在在进口somelib 在在在somelib.func () 关键:somelib:关键错误! 在在在#修改日志级别为& # 39;somelib& # 39;>看完上述内容,是不是对Python给函数库增加日志功能的方法有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。Python给函数库增加日志功能的方法