python日誌配置

先來一段程序告知python怎樣配置日誌。

logging.basicConfig(level=logging.DEBUG)  # 設置日誌級別
# 創建日誌記錄器,指明日誌保存的路徑、每個日誌文件的最大大小、保存的日誌文件個數上限
file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024 * 1024 * 100, backupCount=10)
# 創建日誌記錄的格式 日誌等級 輸入日誌信息的文件名 行數 日誌信息
formatter = logging.Formatter('%(levelname)s %(filename)s:%(lineno)d %(message)s')
# 爲剛創建的日誌記錄器設置日誌記錄格式
file_log_handler.setFormatter(formatter)
# 爲全局的日誌工具對象(flask app使用的)添加日誌記錄器
logging.getLogger().addHandler(file_log_handler)

分析代碼:

basicConfig():對日誌系統進行一次性配置,以下是可以指定的關鍵字參數
    filename:指定日誌輸出目標文件的文件名,指定該設置項後日志信心就不會被輸出到控制檯了
    filemode:指定日誌文件的打開模式,默認爲'a'。需要注意的是,該選項要在filename指定時纔有效
    format:指定日誌格式字符串,即指定日誌輸出時所包含的字段信息以及它們的順序。logging模塊定義的格式字段下面會列出。
    datefmt:指定日期/時間格式。需要注意的是,該選項要在format中包含時間字段%(asctime)s時纔有效
    level:指定日誌器的日誌級別
    stream:指定日誌輸出目標stream,如sys.stdout、sys.stderr以及網絡stream。需要說明的是,stream和filename不能同時提供,否則會引發 ValueError異常
    handlers:Python 3.3中新添加的配置項。該選項如果被指定,它應該是一個創建了多個Handler的可迭代對象,這些handler將會被添加到root logger。需要說明的是:filename、stream和handlers這三個配置項只能有一個存在,不能同時出現2個或3個,否則會引發ValueError異常。
    
RotatingFileHandler():輪轉文件處理器,將日誌消息發送到磁盤文件,並支持日誌文件按大小切割
FileHandler():將日誌消息發送到磁盤文件,默認情況下文件大小會無限增長
StreamHandler():將日誌消息發送到輸出到Stream,如std.out, std.err或任何file-like對象。

Formatter():格式器,決定日誌記錄的最終輸出格式
    %(levelname)s:日誌記錄的級別
    %(message)s:日誌記錄的內容
    %(asctime)s:日誌記錄的時間
    %(pathname)s:調用日誌記錄文件的全路徑
    %(filename)s:pathname的文件名部分
    %(module)s:pathname的文件名,不包含後綴
    %(funcName)s:調用日誌記錄文件的函數名
getLogger():創建一個Logger對象
    addHandler():添加一個處理器

日誌級別

以下是由低到高,默認設置等級後不顯示低等級的消息

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL(很少使用)

參考文檔:https://www.cnblogs.com/yyds/...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章