python - 哪种启用/禁用日志记录的更好方法?

asd*_*dfg 3 python logging

哪种方法可以更好地启用/禁用日志记录?

1)更改日志级别,

logging.disable(logging.CRITICAL)
Run Code Online (Sandbox Code Playgroud)

2)

log = None
Run Code Online (Sandbox Code Playgroud)

并以这种方式记录消息,

if log:
    log.info("log message")
Run Code Online (Sandbox Code Playgroud)

这样我们可以在禁用日志记录的情况下避免不必要的字符串构造...

Pet*_*ons 11

1是最好的,理想情况下通过配置文件或命令行参数(--quiet)

2只会使你的代码混乱

如果你想避免昂贵的字符串构造(根据我的经验,这可能值0.001%的时间),使用:

if logger.isEnabledFor(logging.DEBUG):
    logger.debug("Message with %s, %s", expensive_func1(),
                                        expensive_func2())
Run Code Online (Sandbox Code Playgroud)

http://docs.python.org/library/logging.html#optimization

  • 假设您在`logger`中拥有当前或根记录器.如果你只是使用`logging.debug(...)`,你需要检查如下:`if logging.getLogger().isEnabledFor(logging.DEBUG):...`. (3认同)