将程序信息记录到文件中

时间:2013-07-08 08:33:14

标签: twisted twisted.web

我已经编写了一个代码。我需要在调用时写入日志信息  d.addErrback(ON_FAILURE)。

来自twisted.python导入日志的

log.startLogging(open('/ home / crytek.etl / foo.log','w'))

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

d.addErrback(ON_FAILURE)

这是实现此方法的正确方法。我没有写入任何值到该文件。有人建议如何实现这一点

1 个答案:

答案 0 :(得分: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_failurelog.err具有完全相同的签名。只需写下:

d.addErrback(log.err)

另外,我喜欢,log.err on_failure的签名完全相同。它更好,它接受第二个参数,用于在日志文件中显示失败的标头。您可以像这样使用它:

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

这将显示“Frobbing the widget failed”以及日志文件中的失败。