【问题标题】:python root logger with FileHandler does not log带有 FileHandler 的 python 根记录器不记录
【发布时间】:2014-04-01 16:14:36
【问题描述】:

我希望所有记录器,尤其是来自外部库的记录器,都登录到同一个文件。为了实现这一点,我正在创建 FileHandler:

filename = ...
mode = ...
level = ...
fmt = ...

handler = logging.FileHandler(filename=filename, mode=mode)
handler.setFormatter(logging.Formatter(fmt))
handler.setLevel(level)

logger = logging.getLogger()
logger.setLevel(level)
logger.addHandler(handler)

我读过同一进程中的所有记录器都从根记录器“继承”,因此它们都应该登录到同一个文件中。我在两台机器上测试过,一台是python 2.7,另一台是2.6。

在第一个上它按我的预期工作,但在另一个上,日志文件存在但为空。似乎处理程序已正确注册,但日志在某处丢失。

我不知道为什么。你有什么建议吗?

提前致谢,

格热戈茨

编辑

为了提供更全面的背景: 我有某种跑步者,它不时在不同的进程中执行任务。跑步者有自己的记录器。对于在单独进程中执行的每个任务,第一步是设置根记录器,如上所述。

【问题讨论】:

    标签: python logging


    【解决方案1】:

    Python2.6 和 Python2.7 之间存在细微差别。 2.6 中的方法setLevel 接受logging.DEBUG 等常量,而2.7 接受logging.DEBUG 常量和字符串"DEBUG"。

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2012-06-13
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      相关资源
      最近更新 更多