Python 日誌輸出 logging

2021-10-10 02:27:54 字數 1570 閱讀 3800

official tutorial

logging 模組日誌模組元件

logging 模組的日誌模組總共包含了四個元件:

事實上,在乙個應用程式的整個過程中,通過 logger 類的例項進行日誌處理和輸出,這些例項通過乙個命名空間的層級結構組織起來,每個命名空間和子空間之間通過'.'來分隔,例如:scan.textscan這個 logger 的子空間中,日誌名根據需要可以任意定義。

顯然,這種命名方式馬上可以聯想到 python 模組的命名方式,所以官方文件中為我們提供的一種較好的命名方法就是通過模組的__name__屬性來進行命名,既可以實現不同層級的模組之間的命名空間組織,又使得每個日誌輸出都和對應的模組關聯起來,方便進行日誌查詢和管理:

logger = logging.getlogger(__name__)
logging 日誌流處理流程

官網的日誌處理流程:

所以,日誌流處理的四個元件的過程如下:

通過 getlogger 函式來得到這個模組的日誌器物件,然後通過 setlevel 和 addhandler 方法可以為這個日誌器物件設定日誌的輸出等級以及日誌輸出的處理器:

# set log level

logger.setlevel(logging.debug)

# create handler

trf_handler = logging.timedrotatingfilehandler(

)logger.addhandler(trf_handler)

建立的日誌器還可以設定相應的格式化器,來確定最終輸出到檔案的日誌的格式:

formatter = logging.formatter(

'%(asctime)s - %(name)s - %(levelname)s - %(message)s'

)# add formatter to timed rotating file handler

trf_handler.setformatter(formatter)

通過直接呼叫不同等級的日誌輸出函式,就可以得到對應格式和等級的日誌輸出:

logger.debug(

'this is debug'

)logger.info(

'this is info'

)logger.warn(

'this is warn'

)logger.error(

'this is error'

)logger.critical(

'this is critical'

)

loggers 日誌器

handlers 處理器

常用的日誌處理器:

filters 過濾器

formatter 格式化器

PythonStudy 日誌模組 logging

日誌 日之石日常的流水,將程式執行過程中的狀態或資料盡心記錄,一般是記錄到日誌檔案當中的。在正常的專案之中,專案的執行的一些列印資訊,採用logging列印到檔案當中,這個過程就稱作為 日誌記錄模組 以下為預設的操作日誌模組 匯入日誌模組 import logging logging為預設列印者,是...

python日誌輸出

import logging logger logging.getlogger 生成乙個日誌物件,內為日誌物件的名字,可以不帶,名字不給定就是root,一般給定名字,否則會把其他的日誌輸出也會列印到你的檔案裡。handler logging.filehandler log test.txt 生成乙個...

Python 日誌輸出

列印日誌是很多程式的重要需求,良好的日誌輸出可以幫我們更方便的檢測程式執行狀態。python標準庫提供了logging模組,讓我們也可以方便的在python中列印日誌。完整的使用方法可以參考標準庫文件。這裡做一下簡單介紹。日誌級別有如下幾種。當獲取根logger的時候,預設級別為notset,這樣會...