动态检测是否启用了日志记录级别

时间:2018-01-08 11:28:02

标签: python logging

为减轻我的申请压力,我正在做以下事情:

log = logging.getLogger(__name__)
DEBUG = log.isEnabledFor(logging.DEBUG)

...

if DEBUG:
    log.debug('blah')

哪种方法正常...除非我动态重新配置记录器,这就是我正在做的事情。永远不会将.debug级别检测为活动级别,因为在应用程序启动时,模块导入时会被禁用。

有关如何在动态配置后更新模块级DEBUG标志的任何提示吗?

1 个答案:

答案 0 :(得分:1)

我认为答案是完全停止使用模块级标志。我也会跳过使用isEnabledFor,因为各个日志记录方法会为您执行此操作,因为日志记录模块始终执行此AFAICT(current implementation)。我看起来早在Python 2.3

您是否确认调用log.debug实际上是一个性能问题?