0

我在twisted 中编写了一个代码。当我们调用d.addErrback(on_failure) 时,我需要在其中写入日志信息。

从 twisted.python 导入日志 log.startLogging(open('/home/crytek.etl/foo.log', 'w'))

def on_failure(失败):log.msg(失败)

d.addErrback(on_failure)

这是实现这一点的正确方法吗?我没有将任何值写入文件。有人可以建议如何实现吗

4

1 回答 1

0

您可能需要考虑以附加模式打开日志文件。否则,每次您的应用程序启动时,您都会清除所有旧日志。这可能使它看起来好像您期望看到的日志消息没有被记录。

from twisted.python import log
log.startLogging(open('/home/crytek.etl/foo.log', 'a'))

您还应该使用log.err而不是记录失败log.msg

def on_failure(failure):
    log.err(failure)

而且您可以更轻松地执行此操作,因为on_failure具有与log.err. 写吧:

d.addErrback(log.err)

另外,我喜欢,log.err 没有on_failure. 更好的是,它接受第二个参数,用于在日志文件中显示失败的标头。你可以像这样使用它:

d.addErrback(log.err, "Frobbing the widget failed")

这将在日志文件中显示“Frobbing 小部件失败”以及失败。

于 2013-07-08T10:51:05.687 回答