【问题标题】:How to make Twisted use Python logging?如何让 Twisted 使用 Python 日志记录?
【发布时间】:2011-01-30 10:06:32
【问题描述】:

我有一个项目,我将 Twisted 用于我的 Web 服务器。当发生异常(例如网络错误)时,它会打印到控制台。

我已经通过 Python 的内置日志模块进行了日志记录 - 有没有办法告诉反应器使用它来代替?

通常的模式是什么?

【问题讨论】:

    标签: python twisted


    【解决方案1】:

    您可以使用twisted.python.log。例如:

    from twisted.python import log
    log.msg('Hello, world.')
    

    【讨论】:

    • 这确实有效,但仅适用于您自己的日志消息,而不是扭曲及其模块生成的日志消息。
    【解决方案2】:

    找到了。其实很简单:

    from twisted.python import log
    observer = log.PythonLoggingObserver(loggerName='logname')
    observer.start()
    

    您只需将 loggerName 设置为您在 logging.getLogger() 中使用的相同记录器名称。

    【讨论】:

    • 请注意,您不需要使用相同的 loggerName。使用不同的记录器可能有助于区分日志消息的来源,相当于在应用程序的不同部分使用不同的记录器。
    • 这是个好主意。另一个帮助是我在日志消息格式中包含线程名称。这有助于确定日志的来源。
    • 仅供参考,python 日志记录模块可能会阻塞,而twisted 并不期望这样。更好的方法是在 python 中编写客户处理程序,该调用将事件发送到twisted。这样你就可以将 python 锁定日志记录到非阻塞日志中
    • @LaKantara 谢谢!但是,请您详细说明一下吗?也许在一个单独的答案中,这可能是什么样子? (抱歉,我没有 1++ 年的时间来学习有关 twisted 的所有内容,只是为了能够理解您的建议如何存档,只是为了能够将一些主要的“twisted 感染”源集成到类似的东西中一个非扭曲的框架。)
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    相关资源
    最近更新 更多