我在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)
这是实现这一点的正确方法吗?我没有将任何值写入文件。有人可以建议如何实现吗
我在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)
这是实现这一点的正确方法吗?我没有将任何值写入文件。有人可以建议如何实现吗
您可能需要考虑以附加模式打开日志文件。否则,每次您的应用程序启动时,您都会清除所有旧日志。这可能使它看起来好像您期望看到的日志消息没有被记录。
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 小部件失败”以及失败。