首页 / 日志 / 使用Python日志记录管理记录器
使用Python日志记录管理记录器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Python日志记录管理记录器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1589字,纯文字阅读大概需要3分钟。
内容图文
我正在编写一个服务器应用程序,该应用程序应该能够在控制台和日志文件上以不同级别登录.
问题是,如果设置了logging.basicConfig(),它将登录到控制台,但是必须在主线程中进行设置.
也可以使用logging.basicConfig(filename =’logger.log’)进行设置以写入文件.
设置控制台日志记录(logging.StreamHandler())或文件日志记录(logging.FileHandler())的句柄将补充logging.baseconfig()选项集.
问题是设置不是独立的.
我的意思是,logging.baseConfig()的日志级别必须包括处理程序级别,否则它将不会被记录.
因此,如果我将baseConfig设置为登录到文件,将StreamHandler设置为登录到控制台,则文件日志级别必须低于控制台级别.
(此外,basicConfig选项记录所有其他日志.)
我尝试创建两个句柄,一个用于控制台,一个用于日志文件,它们可以工作,但是basicConfig()指定的任何日志类型仍将显示重复消息.
有没有一种方法可以禁用basicConfig()的输出?
还是通过其他方式实现这些选项?
谢谢.
解决方法:
您没有在问题中说出您想要在控制台和文件日志记录上指定什么级别.但是,您无需调用basicConfig(),因为它只是一个便捷函数.您可以例如(刚刚输入的代码,未经测试):
import logging
logger = logging.getLogger(__name__)
configured = False
def configure_logging():
global configured
if not configured:
logger.setLevel(logging.DEBUG) # or whatever
console = logging.StreamHandler()
file = logging.FileHandler('/path/to/file')
#set a level on the handlers if you want;
#if you do, they will only output events that are >= that level
logger.addHandler(console)
logger.addHandler(file)
configured = True
首先将事件传递给记录器,如果要处理事件(由于比较记录器和事件的级别),那么该事件将传递给记录器的每个处理程序以及所有其祖先的处理程序.如果在处理程序上设置了级别,则该处理程序可能会丢弃该事件,否则它将输出该事件.
内容总结
以上是互联网集市为您收集整理的使用Python日志记录管理记录器全部内容,希望文章能够帮你解决使用Python日志记录管理记录器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。