logging日誌模組學習

2021-10-17 11:14:11 字數 3158 閱讀 6652

格式化器formatter

日誌配置

日誌模組:

​ 為了列印日誌資訊的模組。

import logging

#測試日誌資訊

logging.debug(

"debug message");

#資訊日誌資訊

logging.info(

"info message");

#警告日誌資訊

logging.warn(

"warn message");

#錯誤日誌資訊

logging.error(

"error message");

#嚴重錯誤日誌資訊

logging.critical(

"critical message"

);

​ 只有日誌資訊級別為warning,logging模組才將日誌列印到螢幕上。(即只有日誌級別高於warning的日誌才會輸出)

級別何時使用

debug

詳細資訊,典型地除錯問題時會感興趣。

info

證明事情按預期工作。

warning

表明發生了一些意外,或者不久的將來會發生問題(如『磁碟滿了』)。軟體還是在正常工作。

error

由於更嚴重的問題,軟體已不能執行一些功能了。

critical

嚴重錯誤,表明軟體已不能繼續執行了。

對日誌的簡單配置:

import logging

#logging模組的基礎設定,filename為日誌列印檔案(沒有會建立乙個檔案),level為日誌等級。

logging.basicconfig(filename=

"logger.log"

, level=logging.info)

#basiccondig的level設定的是logging的最大等級,也就是這裡的等級大於info的都輸出

logging.debug(

"debug message");

logging.info(

"info message");

logging.warn(

"warn message");

logging.error(

"error message");

logging.critical(

"critical message"

);

設定了基礎設定函式後,不會在命令框顯示日誌。而是會列印到檔案中。

它們之間的關係如下:

​ 記錄器logger是乙個樹形結構容器。在使用介面debug、warn、error、critical之前必須建立乙個logger例項。否則建立的是root logger,預設:日誌級別(warn),處理器(streamhandler),資訊列印在螢幕上,格式化器(預設格式化輸出)

# 建立方法

logger = logging.getlogger(logger_name)

修改記錄器資訊:常見的處理器有:

streamhandler

# 建立方法

streamhandler = logging.streamhandler(stream=

none

)

有以下方法:filehandler

# 建立方法

filehandler = logging.filehandler(filename, mode=

"a", encoding=

none

, delay=

false

)

格式化器對輸出日誌資訊做格式規範。規定了日誌資訊的規則、格式、內容。

# 建立方法

formatter = logging.formatter(fmt=

none

, datefmt=

none

)

fmt是訊息的格式化字串。datefmt是日期的格式化字串。預設fmt使用『%(message)s』、預設datefmt使用iso8601日期格式。basicconfig引數資訊:關鍵字描述filename

建立乙個filehandler,使用指定的檔名,而不是使用streamhandler。

filemode

如果指明了檔名,指明開啟檔案的模式(如果沒有指明filemode,預設為』a』)。

format

handler使用指明的格式化字串。

datefmt

使用指明的日期/時間格式。

level

指明根logger的級別。

stream

使用指明的流來初始化streamhandler。該引數與』filename』不相容,如果兩個都有,'stream』被忽略。

有用的format格式格式

描述%(levelno)s

列印日誌級別的數值

%(levelname)s

列印日誌級別名稱

%(pathname)s

列印當前執行程式的路徑

%(filename)s

列印當前執行程式名稱

%(funcname)s

列印日誌的當前函式

%(lineno)d

列印日誌的當前行號

%(asctime)s

列印日誌的時間

%(thread)d

列印執行緒id

%(threadname)s

列印執行緒名稱

%(process)d

列印程序id

%(message)s

列印日誌資訊

Python學習 日誌模組 logging

作用 在邏輯容易出錯位置手動新增日誌功能,記錄報錯資訊到檔案,以被排錯 特點 非自動記錄,為人工指定位置,指定報錯資訊內容 提供五種模式 debug info warning error critical 預設從warning開始輸出,可以根據需求 調整預設寫入檔案是追加a模式 二 logging模...

日誌模組 logging模組

logging.debug 通常除錯時用到的日誌資訊 logging.info 證明事情按照預期的那樣工作 longging.warning 表明發生了意外,或者不就得將來發生的問題 如 磁碟滿了 軟體還是正常的工作 longging.error 由於更嚴重的問題導致軟體已經不能繼續執行某些功能 l...

logging日誌模組

日誌級別日誌輸出 將日誌輸出到控制台 log1.py 如下 import logging logging.basicconfig level logging.warning,format asctime s filename s line lineno d levelname s message s...