尝试将对象转换为字符串时(在此情况下进行登录时),有时(极少)会因给定错误而失败。我什么时候应该期待这种行为?
myobj中的违规行:
log.warning("Instance is %s", self)
正在抛出一个以以下结尾的堆栈跟踪:
File "/usr/lib64/python2.6/logging/__init__.py", line 306, in getMessage
msg = msg % self.args
exceptions.AttributeError: myobj instance has no attribute '__str__'
这是非常奇怪的,因为虽然myobj
不有__str__
方法,但调用它str
按预期工作,此日志行有效当我手动测试它时。 IE我一直无法重现这一点。
什么可能导致这种行为?在Google上搜索此问题的标题会产生少于1页的结果,这让我相信这是一个百万分之一的竞争条件,带有垃圾收集器或其他东西。