python之logging模組的使用

2021-10-06 16:15:41 字數 2716 閱讀 8647

日誌等級從低到高分為:

debug:除錯資訊,詳細的資訊,通常出現在診斷問題上

info:資訊,確認一切按預期執行

warning(預設):警告,程式執行中發生了預期之外的事情,但是程式依然可以按預期完成工作

error:錯誤,程式無法正常執行完

critical:極其嚴重,程式可能會中斷,無法繼續執行

可以直接通過logging模組呼叫不同的方法實現不同級別日誌資訊的列印

logging.info("info資訊")

logging.warning("warning資訊")

logging.debug("debug資訊")

logging.error("error資訊")

logging.critical("critical資訊")

上面的**執行結果可以看到,明明我們呼叫了5中級別日誌的列印,但是實際輸出了的話只有warning、error和critical三種級別。原因是logging模組預設設定的日誌級別是warning,而debug和info的級別是低於warning的,所以不會列印這兩種日誌資訊。如果我們需要指定顯示的日誌資訊的話,我們需要呼叫basicconfig()方法 

語法:

logging.basicconfig(level=logging.debug,    # 確定日誌級別

filename="rizhi.log", # 日誌檔名

filemode="w", # 檔案操作模式

format="%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s" # 日誌資訊顯示格式

)

import logging

logging.basicconfig(level=logging.debug

)logging.info("info資訊")

logging.warning("warning資訊")

logging.debug("debug資訊")

logging.error("error資訊")

logging.critical("critical資訊")

如果需要將日誌以指定的格式寫入到日誌檔案,則需要制定filename、filemode和format三個引數的值

import logging

logging.basicconfig(level=logging.debug,

filename="rizhi.log",

filemode="w",

format="%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s"

)logging.info("info資訊")

logging.warning("warning資訊")

logging.debug("debug資訊")

logging.error("error資訊")

logging.critical("critical資訊")

# 建立乙個logger物件

logger = logging.getlogger()

# 設定log日誌級別

logger.setlevel(logging.info)

# 建立乙個filehandler用於建立日誌檔案

log_filename = "logrizhi.log"

fp = logging.filehandler(log_filename, mode="w")

fp.setlevel(logging.debug)

# 建立乙個streamhandler物件用於在控制台輸出日誌

ch = logging.streamhandler()

ch.setlevel(logging.warning)

# 通過formatter類制定日誌資訊格式

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

fp.setformatter(formatter)

ch.setformatter(formatter)

# 將日誌檔案和控制台列印的物件新增到logger物件

logger.addhandler(fp)

logger.addhandler(ch)

logging.info("info資訊")

logging.warning("warning資訊")

logging.debug("debug資訊")

logging.error("error資訊")

logging.critical("critical資訊")

Python 模組之logging日誌

logging模組是pyhton自帶的內建模組,提供了標準的日誌介面 日誌等級列表 日誌等級 level 描述級別 notset 不設定0 debug 最詳細的日誌資訊,典型應用場景是 問題診斷 10info 資訊詳細程度僅次於debug,通常只記錄關鍵節點資訊,用於確認一切都是按照我們預期的那樣進...

python 日誌處理之logging

日誌是用來記錄程式在執行過程中發生的狀況,在程式開發過程中新增日誌模組能夠幫助我們了解程式執行過程中發生了哪些事件,這些事件也有輕重之分。根據事件的輕重可分為以下幾個級別 debug 詳細資訊,通常僅在診斷問題時才受到關注。整數level 10 info 確認程式按預期工作。整數level 20 w...

python 之列印日誌logging

import logging 引入logging模組 將資訊列印到控制台上 logging.debug u 蒼井空 logging.info u 麻生希 logging.warning u 小澤瑪利亞 logging.error u 桃谷繪里香 logging.critical u 瀧澤蘿拉 回顯 ...