仅为一个子记录器启用调试日志记录(通过配置,而不是代码)
Enable debug logging for just one sub logger (via config, not code)
我在相当“默认”的设置中使用 Python 日志记录模块:配置通过 ini 格式的配置文件并使用 logging.config.fileConfig
进行。记录器名称是模块名称,所以我有这样的记录器:
myapp.submoduleA
myapp.submoduleB
myapp.submoduleB
externalLibA
externalLibB
在我的默认设置中,我将 myapp
的日志级别设置为 INFO
,externalLibA
和 externalLibB
的日志级别设置为 WARN
。但现在我只想为 myapp.submoduleB
启用 DEBUG
。有没有一种简单的方法可以做到这一点,无需编写代码,也无需显式配置所有其他子处理程序?
我目前看到的唯一选项是不为 myapp
配置级别,为 myapp.submoduleB
配置 DEBUG
,然后为所有其他子处理程序手动配置 INFO
.因为我在现实生活中有超过三个,这会很烦人,我想知道其他人是如何处理的。
如果您将记录器 myapp
保留在级别 INFO
并且仅将记录器 myapp.submoduleB
设置为级别 DEBUG
,这应该会按预期工作 - myapp
并且myapp.submoduleX
将在 INFO
除了 myapp.submoduleB
将在 DEBUG
。确保在调用 fileConfig()
.
时确保 disable_existing_loggers
到 False
我在相当“默认”的设置中使用 Python 日志记录模块:配置通过 ini 格式的配置文件并使用 logging.config.fileConfig
进行。记录器名称是模块名称,所以我有这样的记录器:
myapp.submoduleA
myapp.submoduleB
myapp.submoduleB
externalLibA
externalLibB
在我的默认设置中,我将 myapp
的日志级别设置为 INFO
,externalLibA
和 externalLibB
的日志级别设置为 WARN
。但现在我只想为 myapp.submoduleB
启用 DEBUG
。有没有一种简单的方法可以做到这一点,无需编写代码,也无需显式配置所有其他子处理程序?
我目前看到的唯一选项是不为 myapp
配置级别,为 myapp.submoduleB
配置 DEBUG
,然后为所有其他子处理程序手动配置 INFO
.因为我在现实生活中有超过三个,这会很烦人,我想知道其他人是如何处理的。
如果您将记录器 myapp
保留在级别 INFO
并且仅将记录器 myapp.submoduleB
设置为级别 DEBUG
,这应该会按预期工作 - myapp
并且myapp.submoduleX
将在 INFO
除了 myapp.submoduleB
将在 DEBUG
。确保在调用 fileConfig()
.
disable_existing_loggers
到 False