我正在使用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
我正在使用类,因此我修改了一些代码
答案 0 :(得分:0)
可能的副本:python logging specific level only
请在此处查看已接受的答案。
对于每个将输出限制为提供的日志级别的处理程序,您需要使用filters。