python - 如何让多个处理程序使用日志?

标签 python logging logbook

我正在使用 logbook在 Python 应用程序中记录消息但是

import logbook

from logbook import Logger, StreamHandler, NullHandler

log = Logger('LogbookExample')

import sys
StreamHandler(sys.stdout).push_application()

NullHandler().push_application()

def main():
    log.info('Hello, World!')    

if __name__ == "__main__":
    main()

没有像我预期的那样工作... 没有出现。就像 NullHandler 正在替换 StreamHandler

所以我想知道如何将多个处理程序连接到应用程序?

最佳答案

这里的问题是选择NullHandler。它充当“黑洞”,吞噬所有日志并且不将它们传播到堆栈中。

堆叠非NullHandler很容易:

StreamHandler(sys.stdout).push_application()
StreamHandler(sys.stderr, bubble=True).push_application()

bubble 关键字表示处理程序应在处理记录后继续向上传播堆栈。

关于python - 如何让多个处理程序使用日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38804018/

相关文章:

python - 在mysql中添加列移动平均线

python - 无法在日志中设置日志级别,以便它不记录其他级别

python - pytest 日志记录到文件和标准输出

python - Pyinstaller 可执行文件不断打开

python - 防止 subprocess.Popen 在 python 中显示输出

sql - 如何计算 hibernate 在一个 Grails 请求中执行了多少个 SQL 查询?

c# - 哪种方法更适合在 C# 中读取 Windows 事件日志? WMI 或事件日志

java - 日志中西里尔文日志的显示不正确

python - 将 Pandas 数据框插入到 neo4j 中

ruby-on-rails - 禁用 ActionCable 事件的 Rails 日志