[英]Python logging issue?
我正在編寫以下代碼,將消息記錄到文件中:
#!/usr/bin/python3
import logging
## init logger
logger = logging.getLogger(__name__)
## create handler file
handler = logging.FileHandler('mylog3.log')
## set log level
handler.setLevel(logging.INFO)
## add handler to logger
logger.addHandler(handler)
l = [1, 2, 3, 4]
i = 3
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.debug('This is a debug message. I=%d l=%s', i, l)
logger.error('This is an error message. l =%s', l)
logger.fatal('This is a fatal error message')
我看到的問題是,無論我提供什么設置,它總是在文件中打印警告,錯誤和致命錯誤消息。 永遠不會編寫調試和信息消息。
我確認自己在Windows以及Ubuntu Linux Python 3上都遇到了PyCharm問題。因此,一定是我做錯了什么。 會是什么 我很茫然!
由於行handler.setLevel(logging.INFO)
,因此未顯示調試和信息消息。 這將導致不顯示所有級別為logging.INFO
或以下的消息(僅info和debug)。 您可以使用logging.NOTSET
替換loggign.INFO
來解決此問題。
記錄器和處理程序都有級別。 您已為處理程序設置了級別,但未為記錄程序設置了級別-默認為WARNING
。 如果執行logger.setLevel(logging.DEBUG)
,則應該同時看到DEBUG
和INFO
消息(如果根本沒有在處理程序上設置級別)或INFO
消息,但看不到DEBUG
消息(如果設置了處理程序的級別到logging.INFO
)。
有關日志記錄中信息流的更多信息,請參見此圖 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.