gpt4 book ai didi

python - 如何在 python 日志记录模块中指定级别?

转载 作者:行者123 更新时间:2023-12-04 08:46:39 26 4
gpt4 key购买 nike

我需要两个处理程序。一个用于文件记录,另一个用于控制台中的流记录。我需要为每个处理程序指定级别。请注意,我的级别将类似于以下级别。
流处理程序 --> 信息
文件处理程序 --> 警告、错误、严重
这是我的代码。

    # Create a custom logger
logger = logging.getLogger('DBMQ')
logger.setLevel(logging.DEBUG)

stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)

logger.addHandler(stream_handler)

file_handler = logging.FileHandler('./data/file.log')
file_handler.setLevel(logging.WARNING)

logger.addHandler(file_handler)
现在,它必须像这样运行:
logger.debug('hey') # Nothing should happen
logger.info('hey') # only stream handler should log this message
logger.warning('hey') # only file handler should log this message but the stream does too
logger.error('hey') # only file handler should log this message but the stream does too
logger.critical('hey') # only file handler should log this message but the stream does too
我需要禁止流处理程序记录 warning , error , 和 critical日志记录级别。有没有办法过滤这个处理程序?

最佳答案

您可以创建自己的处理程序:

logger = logging.getLogger('DBMQ')
logger.setLevel(logging.DEBUG)


class MyStreamHandler(logging.StreamHandler):
def emit(self, record):
if record.levelno == self.level:
super().emit(record)

stream_handler = MyStreamHandler()
stream_handler.setLevel(logging.INFO)

logger.addHandler(stream_handler)

file_handler = logging.FileHandler('./data/file.log')
file_handler.setLevel(logging.WARNING)

logger.addHandler(file_handler)

关于python - 如何在 python 日志记录模块中指定级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64280257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com