[英]python root logger with FileHandler does not log
我希望所有记录器(尤其是来自外部库的记录器)登录到同一文件。 为此,我正在创建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)
我已经读过,同一进程中的所有记录器都是从root记录器“继承”来的,因此它们毕竟应该登录到同一文件中。 我已经在两台机器上对其进行了测试,一台使用python 2.7,另一台使用2.6。
在第一个上,它按我的预期工作,但是在另一个上,日志文件存在但为空。 似乎处理程序已正确注册,但是日志丢失了。
我不知道为什么。 你有什么建议吗?
提前致谢,
格热哥兹
为了提供更全面的背景知识:我有某种跑步者,有时会在单独的流程中执行任务。 跑步者有自己的记录器。 对于在单独过程中执行的每个任务,第一步是设置根记录器,如上所述。
Python2.6和Python2.7之间有细微的差别。 方法setLevel
在2.6接受常量如logging.DEBUG
而2.7,可同时接收logging.DEBUG
常数和字符串"DEBUG"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.