Shm*_*ikA 5 python logging python-2.7 python-3.x
我使用的logging.config.dictConfig()设置登录到文件中使用FileHandler和RotatingFileHandler。dictConfig()多次打电话是不好的做法吗?如果是为什么?
我认为这个问题不仅仅是两次调用一个方法更广泛。
1)dictConfig多次调用是一种不好的做法吗?- 不它不是。只要你明白发生了什么,你就可以愉快地使用它。
2) 在某些情况下,它是否可以被视为不良做法或导致意外结果?- 是肯定的。
如果您检查源代码,dictConfig您将找不到任何可能损害运行代码的内容。所有配置都封装在一个锁中,因此调用方法是安全的。
但是,您应该注意的是_handle_existing_loggers. 默认情况下,所有现有记录器都将被禁用,这很重要,请再次阅读,禁用,而不是删除。它们仍然存在但不再起作用,例如,它们可能会阻止消息传播到父记录器。(更多阅读在这里,实际代码:python 源代码)
您可以使用此Gist测试记录器会发生什么(虽然我不同意Gist描述)。
总的来说,我的建议是 - 尝试一次配置所有记录器。在某些情况下,您需要动态添加记录器,这还不错,只要确保您知道会发生什么,或者如果您想扩展记录器配置,只需将其False作为disable_existing_loggers参数传递。
干杯和安全编码!