logging模塊簡介
logging模塊是Python內置的標準模塊,主要用于輸出運行日志,可以設置輸出日志的等級、日志保存路徑、日志文件回滾等;相比print,具備如下優點:
可以通過設置不同的日志等級,在release版本中只輸出重要信息,而不必顯示大量的調試信息;
print將所有信息都輸出到標準輸出中,嚴重影響開發者從標準輸出中查看其它數據;logging則可以由開發者決定將信息輸出到什么地方,以及怎么輸出;
將我們記錄內容從記錄方式中真正分離,保證了軟件不同部分的合作。舉個例子,他允許一個框架或者庫的開發者增加日志并且讓系統管理員或者負責運行配置的人員決定稍后應該記錄什么。
logging模塊主要分為四個部分:
Loggers:提供應用程序直接使用的接口
Handlers:將Loggers產生的日志傳到指定位置
Filters:對輸出日志進行過濾
Formatters:控制輸出格式
1,記錄器(Logger)
記錄器是開發者經常交互的對象,那么主要的API說明了我們想要記錄的內容。
舉個記錄器的例子,我們可以分類請求發出的一條信息,而不用擔心他們是如何從哪里被發出的。
2,日志記錄
日志記錄時logging模塊用來滿足所有需求信息的包。他們包含了需要記錄日志的地方,變化的字符串,參數,請求的信息隊列等信息。
他們都是被記錄的對象,每次我們調用記錄器時,都會生成這些對象。但是這些對象是如何序列化到流中的呢?那就是處理器。
3,處理器
處理器是將日志記錄發送到其他輸出終端,他們獲取日志記錄并用相關函數中處理他們。
比如,一個文件處理器將會獲取一條記錄,并且將它添加到文件中。
標準的logging模塊已經具備了多種內置的處理器。例如:
多種文件處理器(TimeRotated,SizeRotated,Watched),可以寫入文件中
StreamHandler輸出目標流比如stdout或stderr
SMTPHandler通過email發送日志記錄
SocketHandler將日志文件發送到流套接字
SyslogHandler、NTEventHandler、HTTPHandler及MemoryHandler等
4,格式器(Formatter)
各時期負責將豐富的元數據日志記錄轉換為字符串,如果什么都沒有提供,將會有個默認的格式器。
一般的格式器類由logging庫提供,采用模板和風格作為輸入。然后占位符可以在一個logRecord對象中聲明所有屬性。
5,過濾器(Filters)
我們日志工具的最后一個對象就是過濾器。
過濾器允許對應該發送的日志記錄進行細粒度控制。多種過濾器能同時應用在記錄器和處理器中。對于一條發送的日志來說,所有的過濾器都應該通過這條記錄。
用戶可以聲明他們自己的過濾器作為對象,使用filter方法獲取日志記錄作為輸入,反饋True/False作為輸出。
以上內容為大家介紹了python重要的日志模塊logging,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。