Python日志记录无效

时间:2013-05-11 00:36:41

标签: python logging

我正在从文件加载我的日志配置。日志文件如下:

[loggers]
keys=root

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stderr,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('../output.log','w')

[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=

我使用以下方法创建了一个记录器:

_logger = logging.getLogger(__name__)
logging.config.fileConfig('../logging.conf')

但是,我运行程序时看不到任何日志输出。如果我为 main 模块添加单独的记录器,则记录按预期工作。但是这样设置它不起作用。我做错了什么?

2 个答案:

答案 0 :(得分:1)

通过这样创建日志文件:

_logger = logging.getLogger(__name__)

它将查找名称为__main__的文件,您的模块将等于"__main__"。但是,导入的其他模块的__name__等于模块的模块名称

答案 1 :(得分:1)

您需要在配置后放置记录器logging.fileConfig调用将禁用预先存在的记录器,这就是您的记录器无法正常工作的原因。