Python通过ini记录到文件会创建空的日志文件

时间:2017-09-16 07:01:41

标签: python python-2.7 logging

我有认为是一个非常基本的Python登录示例(v2.7.10),但我无法记录到文件中。记录到stderr不是问题,但是当我尝试要求它写入文件时,我得到的只是一个空的日志文件。

这是我的配置thread1.start(); thread2.start(); thread3.start(); thread4.start(); while (true) { try { thread1.join(); thread2.join(); thread3.join(); thread4.join(); break; } catch (InterruptedException e) { e.printStackTrace(); } 文件:

log_config.ini

这是一个使用这个ini文件的基本测试python脚本:

[loggers]
keys=root

[handlers]
keys=file_handler,stream_handler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler

[handler_stream_handler]
class=StreamHandler
level=WARNING
formatter=formatter
args=(sys.stderr,)

[handler_file_handler]
class=FileHandler
level=DEBUG
formatter=formatter
args=('empty.log',)

[formatter_formatter]
format=%(asctime)-s %(name)s %(module)s %(funcName)s %(levelname)-8s %(message)s
datefmt=%Y-%m-%d %H:%M:%S

请注意,我可以更改import logging from logging import config log_config_ini = "log_config.ini" logging.config.fileConfig(log_config_ini) logger = logging.getLogger() logger.critical('This outputs just to the screen') logger.debug("This does not write to either screen (expected) nor file (unexpected)") 块的level之类的内容,一切都按预期工作,因此正在正确读取配置文件。

我也尝试了类似handler_stream_handler的关卡,但似乎没有任何区别,我只是得到一个空的'empty.log'文件。

我确信有一些非常基本和愚蠢的东西会有所帮助,但我认为我已经筋疲力尽了谷歌和Python文档。任何帮助将不胜感激,谢谢你提前!

1 个答案:

答案 0 :(得分:2)

您需要将file_handler添加到配置文件中的根记录器handlers

[logger_root]
level=DEBUG
handlers=stream_handler, file_handler