【问题标题】:logging program info to file in twisted将程序信息记录到扭曲的文件中
【发布时间】:2013-07-08 08:33:13
【问题描述】:

我已经在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 twisted.web


    【解决方案1】:

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

    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 小部件失败”以及失败。

    【讨论】:

    • 太好了,很高兴它有帮助。 :) 如果你喜欢这个答案,请点击按钮接受它。如果你非常喜欢它,你也可以投票。 :)
    猜你喜欢
    • 2014-09-22
    • 2011-11-03
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多