【发布时间】:2015-04-25 09:20:19
【问题描述】:
我正在尝试使用 logging.getLogger('child') 在子 python 模块中创建非根记录器,但我收到错误消息“找不到记录器“子”的处理程序
我正在尝试将父模块日志记录到父日志文件。父模块将创建子模块的实例,我希望子模块编写自己的子日志文件,而不会将其消息传播到父日志文件。
这是我的父模块(由用户执行):
#!/usr/bin/env python
import logging, child
logging.basicConfig( filename='parent.log' )
logging.warning( 'test log from parent' )
c = child.run()
这是子模块:
import logging
class run:
def __init__(self):
logging.basicConfig( filename = 'child.log' )
childLogger = logging.getLogger( __name__ )
childLogger.propagate = False
childLogger.warning( 'this is a log from the child' )
预期的输出是 2 个文件:parent.log(包含来自父模块的 1 个 WARNING 行)和 child.log(包含来自子模块的 1 个 WARNING 行)。
实际输出是:在 parent.log 文件中打印了一个 WARNING 行(来自父级),并且没有 child.log 文件——子级日志消息没有记录在任何地方。
你能告诉我我错过了什么吗?蒂亚!
【问题讨论】:
标签: python logging handler root