Python—logging模塊使用教程
簡單用法
日誌等級
級別 |
何時使用 |
DEBUG |
細節信息,僅當診斷問題時適用。 |
INFO |
確認程序按預期運行 |
WARNING |
表明有已經或即將發生的意外(例如:磁盤空間不足)。程序仍按預期進行 |
ERROR |
由於嚴重的問題,程序的某些功能已經不能正常執行 |
CRITICAL |
嚴重的錯誤,表明程序已不能繼續執行 |
控制檯輸出日誌
import logging
logging.warning('Watch out!')
logging.info('I told you so')
將日誌保存到文件並且設置時間和輸出格式
import logging
# 保存文件爲example.log,記錄等級爲DEBUG,即只記錄DENBUG及以上的日誌
# 輸出格式爲 2019-19-06 18:47:06 - WARNING - And this, too
logging.basicConfig(
filename='example.log',
filemode='w',
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%d-%d %H:%M:%S'
)
logging.debug('This message should go to the log file')
logging.info('So shoul this')
logging.warning('And this, too')
參數解釋
-
filename
: 日誌文件路徑
-
filemode
: 記錄日誌文件的模式,w
爲每次啓動程序都創建一個全新的文件記錄, a
表示追加到文件末尾, 默認爲a
-
level
: 記錄日誌的等級
-
format
: 日誌輸出的格式
-
datefmt
: 日誌輸出時間的格式
使用配置文件配置日誌
[loggers]
# 配置日誌對象名, 默認爲root
keys=root, poj
[handlers]
# 日誌配置名對象名
keys=writeFileHandlers
[formatters]
# 日誌輸出格式對象名
keys=writeFileFormatters
[logger_root]
level=DEBUG
handlers=writeFileHandlers
[logger_poj]
level=DEBUG
handlers=writeFileHandlers
qualname=writeFileFormatters
propagate=0
[logger_leetcode]
level=DEBUG
handlers=writeFileHandlers
qualname=writeFileFormatters
propagate=0
[handler_writeFileHandlers]
# 設置writeFileHandlers對象的配置
class=FileHandler
level=DEBUG
formatter=writeFileFormatters
# 記錄在文件中,以追加的形式
args=("demo.log", "a")
[formatter_writeFileFormatters]
設置writeFileHandlers對象的輸出配置
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%d-%m %H:%M:%S
使用配置文件
import logging.config
# 加載配置文件
logging.config.fileConfig('logging.conf')
# 獲取日誌對象名爲poj的
logger = logging.getLogger("poj")
logger.debug('This message should go to the log file')
logger.info('So shoul this')
logger.warning('And this, too')