首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无需重启应用程序即可动态更改日志级别

无需重启应用程序即可动态更改日志级别
EN

Stack Overflow用户
提问于 2013-10-27 19:07:42
回答 6查看 67.4K关注 0票数 85

是否可以在不重新启动应用程序的情况下使用python中的fileConfig更改日志级别。如果不能通过fileConfig实现,是否有其他方法可以获得相同的结果?

更新:这是针对在服务器上运行的应用程序,我希望sys管理员能够更改在运行时由应用程序选择的配置文件,并动态更改日志级别。我当时正在使用gevent,因此我添加了我的代码作为答案之一,它使用inotify来选择对配置文件的更改。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-10-27 19:09:45

fileConfig是一种根据文件为您配置日志级别的机制;您可以随时在程序中动态更改日志级别。

在需要更改日志级别的日志对象上调用.setLevel()。通常,您会在根目录上执行此操作:

logging.getLogger().setLevel(logging.DEBUG)
票数 136
EN

Stack Overflow用户

发布于 2017-10-12 21:07:24

除了公认的答案:根据您初始化记录器的方式,您可能还必须更新记录器的处理程序:

import logging

level = logging.DEBUG
logger = logging.getLogger()
logger.setLevel(level)
for handler in logger.handlers:
    handler.setLevel(level)
票数 37
EN

Stack Overflow用户

发布于 2019-08-27 18:30:54

sfinken's answer和Starman的后续评论上展开,您还可以检查处理程序的类型,以针对特定的输出器-例如:

import logging
logger = logging.getLogger()
for handler in logger.handlers:
    if isinstance(handler, type(logging.StreamHandler())):
        handler.setLevel(logging.DEBUG)
        logger.debug('Debug logging enabled')
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19617355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档