3 回答

TA貢獻1860條經驗 獲得超8個贊
您尚未配置日志記錄系統,因此它仍然使用默認值(根記錄器的級別為 WARN)。
https://docs.python.org/3/library/logging.html#logging.basicConfig說basicConfig
通過使用默認格式化程序創建 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中,每個處理程序都會將日志記錄的級別與其自身的級別進行比較。如果沒有任何處理程序,它將使用默認的警告。

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

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')
添加回答
舉報