好程式設計師Python培訓之log日誌功能及設定方法

好程式設計師發表於2020-09-30

  好程式設計師Python 培訓 分享 log 日誌功能及設定方法 的詳細介紹,首先引入Python 中有個 logging 模組可以完成相關資訊的記錄,在 debug 時用它往往事半功倍,下面一起跟隨小編過來看看吧。

 

一、日誌級別( 從低到高 )

 

DEBUG: 詳細的資訊 , 通常只出現在診斷問題上

 

INFO: 確認一切按預期執行

 

WARNING: 一個跡象表明 , 一些意想不到的事情發生了 , 或表明一些問題在不久的將來 ( 例如。磁碟空間低” ) 。這個軟體還能按預期工作。

 

ERROR: 更嚴重的問題 , 軟體沒能執行一些功能

 

CRITICAL: 一個嚴重的錯誤 , 這表明程式本身可能無法繼續執行

 

注:這5 個等級,也分別對應 5 種打日誌的方法: debug info warning error critical 。預設的是 WARNING ,當在 WARNING 或之上時才被跟蹤。

 

二、日誌輸出:顯示到控制檯或儲存到檔案中,可以靈活選用

 

# 這裡為了簡便,同時處理:輸出控制檯和儲存到檔案中

 

import logging

 

# 第一步,建立一個 logger

logger = logging.getLogger()

logger.setLevel(logging.INFO) # Log 等級總開關

 

# 第二步,建立一個 handler ,用於寫入日誌檔案

logfile = './log.txt'

fh = logging.FileHandler(logfile, mode='a') # open 的開啟模式這裡可以進行參考

fh.setLevel(logging.DEBUG) # 輸出到 file log 等級的開關

 

# 第三步,再建立一個 handler ,用於輸出到控制檯

ch = logging.StreamHandler()

ch.setLevel(logging.WARNING)  # 輸出到 console log 等級的開關

 

# 第四步,定義 handler 的輸出格式

formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")

fh.setFormatter(formatter)

ch.setFormatter(formatter)

 

# 第五步,將 logger 新增到 handler 裡面

logger.addHandler(fh)

logger.addHandler(ch)

 

# 日誌

logger.debug(' 這是 logger debug message')

logger.info(' 這是 logger info message')

logger.warning(' 這是 logger warning message')

logger.error(' 這是 logger error message')

logger.critical(' 這是 logger critical message')

 

三、日誌格式說明

 

logging.basicConfig 函式中,可以指定日誌的輸出格式 format ,這個引數可以輸出很多有用的資訊,如下 :

 

%(levelno)s: 列印日誌級別的數值

 

%(levelname)s: 列印日誌級別名稱

 

%(pathname)s: 列印當前執行程式的路徑,其實就是 sys.argv[0]

 

%(filename)s: 列印當前執行程式名

 

%(funcName)s: 列印日誌的當前函式

 

%(lineno)d: 列印日誌的當前行號

 

%(asctime)s: 列印日誌的時間

 

%(thread)d: 列印執行緒 ID

 

%(threadName)s: 列印執行緒名稱

 

%(process)d: 列印程式 ID

 

%(message)s: 列印日誌資訊


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2725237/,如需轉載,請註明出處,否則將追究法律責任。

相關文章