设置延迟参数时,RotatingFileHandler引发异常

当我在Python 2.6下运行以下代码时

import logging
from logging.handlers import RotatingFileHandler

rfh = RotatingFileHandler("testing.log", delay=True)
logging.getLogger().addHandler(rfh)
logging.warning("Boo!")

然后最后一行抛出AttributeError:RotatingFileHandler实例没有属性“级别”.所以我加线

rfh.setLevel(logging.DEBUG)

在对addHandler的调用之前,然后最后一行引发AttributeError:RotatingFileHandler实例没有属性“过滤器”.因此,如果我手动将过滤器设置为空列表,那么它将抱怨没有属性锁定等.

当我删除delay = True将其保留为默认值False as documented here时,问题完全消失了.

我想念什么吗?如何正确使用RotatingFileHandler类的delay参数?

编辑:经过进一步分析(在下面我自己的答案中提出),这看起来像个错误,但是即使在尝试不同的搜索字词时,我也无法在Python bug tracker中找到此错误的报告,所以我想我将进行报告.

但是,如果有人可以找到实际的错误报告,那么我可以避免提交重复的报告并浪费Python开发人员的时间.我将延迟几个小时报告该错误,如果有人发布了包含当前错误报告的答案,那么我将接受该问题的答案.

解决方法:

我已经研究了此问题:此问题已在2009年1月20日的Python SVN r68829中修复.此问题在2.6.1发行之后但在2.6.2发行之前.

请升级到Python 2.6.2或更高版本.

我更新了the bug you filed.顺便说一句,提交的原始错误报告是#5013,可以通过搜索RotatingFileHandler的所有问题(不仅仅是打开的问题)来查找,例如this(来自this page).

上一篇:django配置日志


下一篇:原创 :nfs软件服务利用ansible实现一键化部署