我现在一直在寻找解决方案几个小时,也许我只是错过了一些东西..
我有一个实现protocol.ReconnectingClientFactory
的工厂工作得很好,但是,每当程序运行结束时,我在日志中收到一堆Unhandled error in Deferred
消息,用于运行时发生的每次断开连接,比如
2012-06-14 12:28:51+0100 [-] Unhandled error in Deferred:
2012-06-14 12:28:51+0100 [-] Unhandled Error
Traceback (most recent call last):
Failure: twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.
有没有什么办法可以在运行时以某种方式“处理”这些,这样我的日志就不会在最后发送垃圾邮件了......(或者以某种方式避免垃圾邮件......)我真的不在乎什么解决方法是,我已经有以下方法记录了我的一切
def clientConnectionLost(self, connector, reason):
log.msg('Lost connection. Reason: %s' % reason)
我有什么办法可以处理那里的“原因”,这是一个失败对象,这样就可以正确处理错误..?
无论如何,我并不认为自己能够精通Twisted,所以任何帮助都会非常感激。
提前多多感谢。
答案 0 :(得分:1)
消息Unhandled error in Deferred
告诉您错误的来源,甚至暗示如何消除错误。当使用Deferred
结果对Failure
进行垃圾回收时,它会记录这些消息 - 因为未处理错误。
将错误处理程序(以及 errback )添加到以这种方式失败的Deferred
,并根据需要处理错误(包括忽略它,如果这适合您的应用程序)