gpt4 book ai didi

python - 如何在不从代码中删除日志语句的情况下关闭它们

转载 作者:太空狗 更新时间:2023-10-29 21:01:32 26 4
gpt4 key购买 nike

如果整个代码库中都有日志记录语句,我该如何设置记录器,以便在将代码部署到生产环境时不必注释掉对记录器的每次调用?

这是我当前的代码:

import logging


logging.basicConfig(filename='./example.log', level=logging.DEBUG,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%m-%d %H:%M')

logging.debug('debug failed')
logging.info('info failed')
logging.warning('A warning')

最佳答案

除了使用 basicConfig,您还可以根据任何条件使用您想要的处理程序更明确地设置记录器。

import logging

log = logging.getLogger("FOO")
log.setLevel(logging.DEBUG)

# needs a handler
log.info('info')
#No handlers could be found for logger "FOO"

ch = logging.StreamHandler()
log.addHandler(ch)
log.info('info')
# info

log.removeHandler(ch)

noop = logging.NullHandler()
log.addHandler(noop)
# nothing happens here
log.info('info')

如果您在 Debug模式下运行,您可以有一个条件语句来添加您想要的处理程序,或者您可以添加一个只吸收日志消息的 NullHandler。您还可以单独配置每个处理程序的级别,以便您始终看到警告和以上警告。除了主记录器之外,每个处理程序都可以有自己的级别。

您可以 refer to the tutorials关于如何更具体地使用级别、处理程序和格式。

关于python - 如何在不从代码中删除日志语句的情况下关闭它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12483144/

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