为了账号安全,请及时绑定邮箱和手机立即绑定

当级别设置为logging.DEBUG时,为什么log.debug()不记录日志?

当级别设置为logging.DEBUG时,为什么log.debug()不记录日志?

jeck猫 2023-08-22 18:35:24
我期望以下代码会输出两条日志行import logging log = logging.getLogger('hello') log.setLevel(logging.DEBUG) print(log.getEffectiveLevel()) log.debug('debug log') log.critical('critical log')输出是10 critical log级别正确设置为10(对应于DEBUG),尽管如此,却log.debug('debug log')没有输出任何内容 - 为什么?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

您尚未配置日志记录系统,因此它仍然使用默认值(根记录器的级别为 WARN)。

https://docs.python.org/3/library/logging.html#logging.basicConfigbasicConfig

通过使用默认格式化程序创建 StreamHandler 并将其添加到根记录器,对日志记录系统进行基本配置。

首先配置日志系统basicConfig将创建您的记录器将使用的处理程序和格式化程序:

logging.basicConfig()
log = logging.getLogger('hello')
log.setLevel(logging.DEBUG)
print(log.getEffectiveLevel())
log.debug('debug log')
log.critical('critical log')

输出:

10
DEBUG:hello:debug log
CRITICAL:hello:critical log

在Logger.callHandlers中,每个处理程序都会将日志记录的级别与其自身的级别进行比较。如果没有任何处理程序,它将使用默认的警告。


查看完整回答
反对 回复 2023-08-22
?
慕斯王

TA贡献1864条经验 获得超2个赞

有了StreamHandler它就会

将日志输出发送到流,例如 sys.stdout、sys.stderr 或任何类似文件的对象”

根据文档

import logging 

import sys


# Initialize Logger and set Level to DEBUG

logger = logging.getLogger()

logger.setLevel(logging.DEBUG)


# Initialize a Handler to print to stdout

handler = logging.StreamHandler(sys.stdout)


# Format Handler output

logFormatter = logging.Formatter(

    "%(asctime)s %(message)s", datefmt="%m/%d/%Y %I:%M:%S %p"

)

handler.setFormatter(logFormatter)


# Set Handler Level to DEBUG

handler.setLevel(logging.DEBUG)

logger.addHandler(handler)


logger.debug('Debug Info')

>>> 09/19/2020 09:01:00 PM Debug Info


查看完整回答
反对 回复 2023-08-22
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

您需要添加流处理程序


import logging


log = logging.getLogger('hello')

log.setLevel(logging.DEBUG)


# # Create a file handler to store the logs

file_handler = logging.FileHandler('test.log')

log.addHandler(file_handler)


# # Send output to terminal

stream_handler = logging.StreamHandler()

log.addHandler(stream_handler)


log.debug('debug log')


查看完整回答
反对 回复 2023-08-22
  • 3 回答
  • 0 关注
  • 353 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信