天天看點

Python學習筆記(25)-Python日志使用詳解與執行個體4. 日志級别5. 日志禁用6. 将日志輸出到檔案

1. 簡介

本篇主要示範為何使用日志,如何輸出日志,如何設定日志的級别,如何限制各級别的日志的輸出以及如何将日志輸出到檔案。

2. 為何使用日志

使用print()函數輸出調試資訊是非常不正确的,最簡單的原因就是:print()會遍布于程式各處,當程式員不想再輸出調試資訊時,需要一處一處的去查找然後注釋掉print(),非常麻煩。

是以需要注意的是,print()函數實際上是輸出給使用者看到,就如input()是用來接收使用者輸入一樣。

日志卻是用來顯示給程式員看的資訊的,日志資訊可以區分日志資訊的嚴重級别,同時可以輕易的選擇是調試狀态還是運作狀态(可以區分顯示的日志級别)。

3. 如何輸出日志

首先導入日志子產品logging,然後對其進行配置,主要配置日志級别(稍後具體講,日志輸出的格式)。代碼如下:

#導入日志子產品
import logging

#日志子產品配置(DEBUG級别,格式為:時間-級别-消息)
logging.basicConfig(level=logging.DEBUG,format="%(asctime)s-%(levelname)s:%(message)s")

#輸出日志
logging.debug("debug日志")
      

4. 日志級别

主要有五種,可以通過logging.basicConfig中的level參數修改級别。

DEBUG:小問題,一般在調試時才會使用
INFO:正常運作消息
WARNING:警告,可能有問題
ERROR:錯誤,導緻程式部分處理失敗
CRITICAL:緻命的問題,程式都要完蛋
      

如果設定級别為DEBUG,則會輸出所有級别日志

如果設定級别為ERROR,則隻會輸出ERROR和更高的CRITICAL級别的日志。

例如:

#導入日志子產品
import logging

#日志子產品配置(級别,格式為:時間-級别-消息)
logging.basicConfig(level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")

#輸出日志
logging.debug("debug日志")#不會輸出
logging.error("error日志")#會輸出
logging.critical("critical日志")#會輸出
      

5. 日志禁用

如果在程式都調試完了,準備運作了,隻想輸出CRITICAL級别及以上級别的日志,則可以調用

logging.disable(logging.ERROR)

,該方法的功能是禁用該級别及更低級别的日志。

#導入日志子產品
import logging

#日志子產品配置(級别,格式為:時間-級别-消息)
logging.basicConfig(level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")

#禁用日志
logging.disable(logging.ERROR)


#輸出日志
logging.debug("debug日志")#不會輸出
logging.error("error日志")#不會輸出
logging.critical("critical日志")#會輸出
      

6. 将日志輸出到檔案

直接舉例即可,隻是在basicConfig中添加filename參數即可。

#導入日志子產品
import logging

#日志子產品配置(級别,格式為:時間-級别-消息)
logging.basicConfig(filename="C:\\runlog.txt",level=logging.ERROR,format="%(asctime)s-%(levelname)s:%(message)s")

#輸出日志
logging.error("debug日志")