1. 程式人生 > 程式設計 >python logging日誌列印過程解析

python logging日誌列印過程解析

一、 基礎使用

1.1 logging使用場景

日誌是什麼?這個不用多解釋。百分之九十的程式都需要提供日誌功能。Python內建的logging模組,為我們提供了現成的高效好用的日誌解決方案。但是,不是所有的場景都需要使用logging模組,下面是Python官方推薦的使用方法:

任務場景 最佳工具
普通情況下,在控制檯顯示輸出 print()
報告正常程式操作過程中發生的事件 logging.info()(或者更詳細的logging.debug())
發出有關特定事件的警告 warnings.warn()或者logging.warning()
報告錯誤 彈出異常
在不引發異常的情況下報告錯誤 logging.error(),logging.exception()或者logging.critical()

logging模組定義了下表所示的日誌級別,按事件嚴重程度由低到高排列(注意是全部大寫!因為它們是常量。):

級別 級別數值 使用時機
DEBUG 10 詳細資訊,常用於除錯。
INFO 20 程式正常執行過程中產生的一些資訊。
WARNING 30 警告使用者,雖然程式還在正常工作,但有可能發生錯誤。
ERROR 40 由於更嚴重的問題,程式已不能執行一些功能了。
CRITICAL 50 嚴重錯誤,程式已不能繼續執行。

預設級別是WARNING,表示只有WARING和比WARNING更嚴重的事件才會被記錄到日誌內,低級別的資訊會被忽略。因此,預設情況下,DEBUG和INFO會被忽略,WARING、ERROR和CRITICAL會被記錄。

有多種方法用來處理被跟蹤的事件。最簡單的方法就是把它們列印到終端控制檯上。或者將它們寫入一個磁碟檔案內。

1.2 簡單範例

在什麼都不配置和設定的情況下,logging會簡單地將日誌列印在顯示器上,如下例所示:

import logging
logging.warning('Watch out!') # 訊息會被列印到控制檯上
logging.info('I told you so') # 這行不會被列印,因為級別低於預設級別

如果,將上面的程式碼放在一個腳本里並執行,結果是:

WARNING:root:Watch out!

1.3 高階使用

import logging

#建立logger記錄器
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)

#建立一個控制檯處理器,並將日誌級別設定為debug

ch = logging.StreamHandler()

ch.setLevel(logging.DEBUG)

#建立formatter格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

#將formatter 新增到ch處理器
ch.setFormatter(formatter)

#將ch新增到logger
logger.addHandler(ch)

#然後就可以開始使用了
# logger.debug('debug message')
#logger.info('info message')
# logger.warning('warn message')
# logger.error('error message')
# logger.critical('critical message')

def Logss():
  #要列印的資訊
  a = "3"
  logger.info(a)

Logss()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。