亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當級別設置為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條經驗 獲得超8個贊

您需要添加流處理程序


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 關注
  • 528 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號