logging日誌記錄模組,你想要的在這裡

2022-08-26 06:33:09 字數 1392 閱讀 5349

在任何程式中,日誌記錄功能必不可少,它有可以幫助我們追溯程式執行歷史提供參考依據。

今天要實現的日誌記錄功能,使用到了python的內建模組logging,它包含四個日誌等級,從嚴重程度上劃分為:critical、error、warning、info、debug。

除此之外,我們需要知logging預設收集warning以上等級的日誌,預設收集物件為root。

那logging如何使用呢?

首先我們需要匯入該模組:

import logging

接下來建立乙個日誌收集器物件:

#

getlogger裡可以帶上收集器物件名稱,例如『xiaoming'

logger = logging.getlogger('

xiaoming

')

有了日誌收集器物件後,我們怎麼知道應該收集哪些日誌呢?所以這裡需要給日誌收集器物件設定乙個日誌收集的等級閾值,比如設定為info,那麼它會收集info及以上等級的日誌,也就包括warning和error,critical。

logger.setlevel('

info

')

如果程式當中所有的日誌都被日誌收集器物件成功收集,我們又去**看這些日誌?一般來說,程式都有.log的日誌檔案,當然,儲存到檔案只是一種輸出渠道,還有一種是輸出到控制台,下面我們就來實現寫日誌到檔案的輸出渠道,

#

建立檔案輸出渠道

file_handler = logging.filehandler('

test.log

', encoding='

utf-8')

#給檔案輸出渠道設定輸出等級

file_handler.setlevel('

warning

')

沒錯,日誌輸出也要等級的,上面的內容表示只會把日誌收集器中warning和error,critical日誌寫入到檔案,info日誌則不會;它與日誌收集等級並不衝突,乙個限制輸入,乙個限制輸出,

既然要把日誌輸出到test.log檔案中,那每一條日誌記錄得格式又怎麼配置,看下面**:

formatter = logging.formatter('

%(asctime)s - [%(filename)s-->line:%(lineno)d] - %(levelname)s: %(message)s')

file_handler.setformatter(formatter)

記錄格式定下來後,最後只需要將輸出渠道和日誌收集器繫結即可:

logger.addhandler(file_handler)

到此為止,整個日誌記錄的主要流程全部實現,再封裝一下,在其他地方呼叫即可。

logging模組日誌記錄

coding utf 8 import logging,os from time import strftime now strftime y m d.h.m.s.class log object def init self 檔案的命名 self.logname os.path.join os.pa...

日誌模組 logging模組

logging.debug 通常除錯時用到的日誌資訊 logging.info 證明事情按照預期的那樣工作 longging.warning 表明發生了意外,或者不就得將來發生的問題 如 磁碟滿了 軟體還是正常的工作 longging.error 由於更嚴重的問題導致軟體已經不能繼續執行某些功能 l...

logging日誌模組

日誌級別日誌輸出 將日誌輸出到控制台 log1.py 如下 import logging logging.basicconfig level logging.warning,format asctime s filename s line lineno d levelname s message s...