如何检查Python日志的最大错误级别?

时间:2019-08-01 20:20:50

标签: python logging

使用python的logging模块,如果记录了错误或严重性,我想返回非零;如果没有记录错误或严重性,我想返回非零。我是否必须添加一个图层来捕获它,或者这是本机功能?

import logging
def CheckMaxErr():
        pass

logging.debug("Cat")
CheckMaxErr() #should return logging.DEBUG
logging.error("Dog")
CheckMaxErr() #should return logging.ERROR

1 个答案:

答案 0 :(得分:1)

您可以实现日志记录处理程序的子类,并在实例上设置flag属性(如果曾经被调用过)。您可以将处理程序的级别设置为logging.ERROR级别,以使其在这些消息上触发。

import logging

class MyHandler(logging.Handler):
    def __init__(self):
        super().__init__()
        self.flag = False

    def emit(self, record):
        self.flag = True

logger = logging.getLogger(__name__)
handle = MyHandler()
handle.setLevel(logging.ERROR)

logger.addHandler(handle)

logger.debug("debug message")
print(handle.flag)  # False
logger.error("ERROR")
print(handle.flag)  # True

在此示例中,处理程序实际上不对消息执行任何操作,仅在触发消息时设置标志。您可以添加另一个处理程序以登录到所需的任何位置(控制台,文件等)