4

我正在使用日志在 ​​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 ?

4

1 回答 1

2

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

堆叠非NullHandlers 很容易:

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

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

于 2016-08-07T20:21:56.040 回答