【问题标题】:Why does my python logger still print out messages from higher logging levels when set to DEBUG?为什么我的 python 记录器在设置为 DEBUG 时仍会从更高的日志记录级别打印出消息?
【发布时间】:2018-10-01 17:03:05
【问题描述】:

我的 python 记录器设置为调试,但它仍然打印出信息消息:

import logging
from logging.config import fileConfig
fileConfig('./log/logging_config_serial.ini')
logger = logging.getLogger()

logger.debug("debug")
2018-10-01 09:58:43,161 root         DEBUG    debug
logger.info("info")
2018-10-01 09:58:50,997 root         INFO     info

logger.getEffectiveLevel()
Out[12]: 10

看起来它在输出上设置为调试级别 (10=DEBUG, 20=INFO)

这是我的配置文件:

[loggers]
keys=root

[handlers]
keys=stream_handler,fileHandler

[formatters]
keys=formatter

[logger_root]
level=DEBUG
handlers=stream_handler,fileHandler

[handler_stream_handler]
class=StreamHandler
level=DEBUG
formatter=formatter
args=(sys.stderr,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=formatter
args=("./log/l5e5_get_header_info_serial_R3.log",)

[formatter_formatter]
format=%(asctime)s %(name)-12s %(levelname)-8s %(message)s

【问题讨论】:

  • 因为您正在设置将记录的日志级别的下限,而不是独占级别
  • 谢谢@roganjosh

标签: python debugging logging


【解决方案1】:

DEBUG 是最低级别,因此默认情况下这将包括所有更高级别(默认情况下,如果您正在查看 DEBUG,您还希望看到 WARNINGS、INFO 和 ERRORs)

【讨论】:

猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 2019-05-30
  • 2019-10-24
相关资源
最近更新 更多