# Python—logging模塊使用教程 Python—logging模塊使用教程

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')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章