如何使用Logbook拥有多个处理程序?

时间:2016-08-06 11:55:13

标签: 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

一样

所以我想知道如何将几个处理程序连接到app?

1 个答案:

答案 0 :(得分:2)

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

堆叠非NullHandler很简单:

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

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