如何设置Python日志级别?

时间:2020-01-25 19:10:53

标签: python logging

运行此

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

logger.warning("warning")
logger.info("info")
logger.debug("debug")

仅打印“警告”。我希望它能打印所有三个消息。我在做什么错了?

我知道这应该是世界上最基本的东西,但这让我感到困惑,并且Python文档在这一点上令人困惑。

2 个答案:

答案 0 :(得分:1)

您从未调用logging.basicConfig()(或类似的名称)来建立任何处理程序。结果,对logger.warning的调用会为您调用它,这会将日志记录级别重置为logging.WARNING。 (从技术上讲,文档仅提及了模块级功能logging.warning等,为您调用了logging.basicConfig,所以我不知道这种解释是否完全正确。调用basicConfig确实可以,但是,请解决问题。)

import logging

logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

logger.warning("warning")
logger.info("info")
logger.debug("debug")

答案 1 :(得分:1)

我问了差不多马上就搞清楚了。

import logging

logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)

logging.warning("warning")
logging.info("info")
logging.debug("debug")

该文档令人困惑,因为它跳入了记录器自定义的详细信息,而没有将最起码的最小模块级示例放在首位。希望这篇文章可以帮助纠正这一点。

这与Set logging levels基本上是相同的问题,但是我将答案留给我,因为它比那里的答案要小得多。