python之logging基礎入門

2022-09-11 10:33:21 字數 2444 閱讀 5290

日誌是一種可以追蹤某些軟體執行時所發生事件的方法。軟體開發人員可以向他們的**中呼叫日誌記錄相關的方法來表明發生了某些事情。乙個事件可以用乙個可包含可選變數資料的訊息來描述。此外,事件也有重要性的概念,這個重要性也可以被稱為嚴重性級別(level)。

通過log的分析,可以方便使用者了解系統或軟體、應用的運**況;如果你的應用log足夠豐富,也可以分析以往使用者的操作行為、型別喜好、地域分布或其他更多資訊;如果乙個應用的log同時也分了多個級別,那麼可以很輕易地分析得到該應用的健康狀況,及時發現問題並快速定位、解決問題,補救損失。

簡單來講就是,我們通過記錄和分析日誌可以了解乙個系統或軟體程式運**況是否正常,也可以在應用程式出現故障時快速定位問題。比如,做運維的同學,在接收到報警或各種問題反饋後,進行問題排查時通常都會先去看各種日誌,大部分問題都可以在日誌中找到答案。再比如,做開發的同學,可以通過ide控制台上輸出的各種日誌進行程式除錯。對於運維老司機或者有經驗的開發人員,可以快速的通過日誌定位到問題的根源。可見,日誌的重要性不可小覷。日誌的作用可以簡單總結為以下3點:

logging模組預設定義了以下幾個日誌等級,它允許開發人員自定義其他日誌級別,但是這是不被推薦的,尤其是在開發供別人使用的庫時,因為這會導致日誌級別的混亂。

日誌等級(level)

描述debug

最詳細的日誌資訊,典型應用場景是 問題診斷

info

資訊詳細程度僅次於debug,通常只記錄關鍵節點資訊,用於確認一切都是按照我們預期的那樣進行工作

warning

當某些不期望的事情發生時記錄的資訊(如,磁碟可用空間較低),但是此時應用程式還是正常執行的

error

由於乙個更嚴重的問題導致某些功能不能正常執行時記錄的資訊

critical

當發生嚴重錯誤,導致應用程式不能繼續執行時記錄的資訊

日誌級別關係:

notset < debug < info < warning < error < critical

備註:如果把log的級別設定為info, 那麼小於info級別的日誌都不輸出, 大於等於info級別的日誌都輸出。也就是說,日誌級別越高,列印的日誌越不詳細。

1、建立乙個logger

2、設定下logger的日誌的等級

3、建立合適的handler(filehandler要有路徑)

4、設定下每個handler的日誌等級

5、建立下日誌的格式

6、將日誌列印進日誌檔案中

7、將日誌列印在控制台上

8、列印輸出logger.debug\logger.info\logger.warning\logger.error

#

簡單日誌

import

osimport

logging

#列印日誌存放路徑

current_path = os.path.dirname(__file__

)log_file_path = os.path.join(current_path,'

../logs/test.log')

#建立乙個日誌物件,定義乙個名稱

logger = logging.getlogger(__name__)#

設定全域性日誌級別debug info warning error fatal..

logger.setlevel(level=logging.info)

#建立乙個控制台輸出日誌的物件

console =logging.streamhandler()

#設定日誌格式

formatter = logging.formatter('

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

console.setformatter(formatter)

#自定義日誌級別,設定的級別越高,會自動過濾該級別以下的錯誤日誌

console.setlevel(level=logging.debug)

#輸出日誌到檔案中

file_log =logging.filehandler(log_file_path)

formatter = logging.formatter('

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

file_log.setformatter(formatter)

#日誌配置在控制台輸出

logger.addhandler(console)

#日誌物件配置在檔案輸出

logger.addhandler(file_log)

#列印輸出

logger.debug("查錯"

)logger.warning("警告

")logger.info("提示

")logger.error("錯誤

")

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 瀧澤蘿拉 回顯 ...