我正在从文件加载我的日志配置。日志文件如下:
[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 模块添加单独的记录器,则记录按预期工作。但是这样设置它不起作用。我做错了什么?
答案 0 :(得分:1)
通过这样创建日志文件:
_logger = logging.getLogger(__name__)
它将查找名称为__main__
的文件,您的主模块将等于"__main__"
。但是,导入的其他模块的__name__
等于模块的模块名称。
答案 1 :(得分:1)
您需要在配置后放置记录器。 logging.fileConfig
调用将禁用预先存在的记录器,这就是您的记录器无法正常工作的原因。