将每个级别的日志保存到不同的文件中

时间:2019-08-15 15:08:14

标签: python logging

我正在使用Python日志记录模块,但是我不知道如何为每种类型的日志记录级别编写不同的文件。

例如,我希望将调试级别的消息(并且仅调试)保存在文件debug.log中。

这是我到目前为止所拥有的代码,我已经尝试过使用处理程序,但是现在不再起作用。我不知道是否可以这样做。这是我在每个日志记录级别使用处理程序和不同文件的代码,但是由于Debug文件保存了所有其他级别的消息,因此它不起作用。

import logging as _logging
self.logger = _logging.getLogger(__name__)
_handler_debug = _logging.FileHandler(self.debug_log_file)
_handler_debug.setLevel(_logging.DEBUG)
self.logger.addHandler(_handler_debug)

_handler_info = _logging.FileHandler(self.info_log_file)
_handler_info.setLevel(_logging.INFO)
self.logger.addHandler(_handler_info)

_handler_warning = _logging.FileHandler(self.warning_log_file)
_handler_warning.setLevel(_logging.WARNING)
self.logger.addHandler(_handler_warning)

_handler_error = _logging.FileHandler(self.error_log_file)
_handler_error.setLevel(_logging.ERROR)
self.logger.addHandler(_handler_error)

_handler_critical = _logging.FileHandler(self.critical_log_file)
_handler_critical.setLevel(_logging.CRITICAL)
self.logger.addHandler(_handler_critical)

self.logger.debug("debug test")
self.logger.info("info test")
self.logger.warning("warning test")
self.logger.error("error test")
self.logger.critical("critical test")

并且debug.log包含以下内容:

debug test
info test
warning test
error test
critical test

我正在使用类,因此我修改了一些代码

1 个答案:

答案 0 :(得分:0)

可能的副本:python logging specific level only
请在此处查看已接受的答案。

对于每个将输出限制为提供的日志级别的处理程序,您需要使用filters