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

Eli*_*ght 3 python logging handlers

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

import logging
from logging.handlers import RotatingFileHandler

rfh = RotatingFileHandler("testing.log", delay=True)
logging.getLogger().addHandler(rfh)
logging.warning("Boo!")
Run Code Online (Sandbox Code Playgroud)

然后最后一行抛出AttributeError: RotatingFileHandler instance has no attribute 'level'.所以我添加了这一行

rfh.setLevel(logging.DEBUG)
Run Code Online (Sandbox Code Playgroud)

在调用之前addHandler,然后最后一行抛出AttributeError: RotatingFileHandler instance has no attribute 'filters'.因此,如果我手动将过滤器设置为空列表,那么它会抱怨没有属性lock等.

当我删除它delay=True以将其保留为False 此处记录的默认值时,问题就完全消失了.

我错过了什么吗?如何正确使用该类的delay参数RotatingFileHandler

编辑:进一步分析(在我自己的答案中提出),这看起来像一个错误,但我在Python错误跟踪器中找不到关于此的错误报告,甚至尝试不同的搜索条件,所以我想我会报告它.

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

Vin*_*jip 5

我已经调查了这个问题:它是在2009年1月20日的Python SVN r68829中修复的.这是在2.6.1发布之后但在2.6.2发布之前.

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

我已经更新了您提交的错误.BTW提交的原始错误报告是#5013,您可以通过搜索所有问题(不仅仅是打开的问题)找到RotatingFileHandler,就像这样(来自此页面).