Python:更改日志记录级别的数值

时间:2020-08-16 05:46:12

标签: python logging

日志记录级别的默认数字值为:

enter image description here

我需要更改此值并设置 DEBUG值设为20 信息到10

请让我知道该怎么做。

目前这是我的代码:

log =logging.getLogger(__name__)

log.setLevel(logging.DEBUG)
formatter =logging.Formatter('[%(module)s](%(lineno)d) [%(levelname)s] : %(message)s')

file_handler = logging.FileHandler('debug.log', mode='w')
file_handler.setFormatter(formatter)
log.addHandler(file_handler)


stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
log.addHandler(stream_handler)


log.warning('This is a warning')
log.error('This is an error')
log.info('This is an INFO')
log.debug('This is an DEBUG')
log.critical('This is an CRITICAL')

2 个答案:

答案 0 :(得分:1)

您可以在处理程序上使用过滤器,该过滤器可以选择具有特定级别的消息。

请参见logging with filters

在这种情况下,Filter子类上的filter方法的主体为:

return record.getLevel() == logging.DEBUG

答案 1 :(得分:0)

这就是我的解决方法

我创建了这样的过滤器:

class debugFilter(logging.Filter):
    def filter(self, record):
        if (record.levelno == 10):
            return True
        else:
            return False

和主要代码:

file_handler = logging.FileHandler('debug.log', mode='w')
file_handler.addFilter(debugFilter())
file_handler.setFormatter(formatter)
log.addHandler(file_handler)