在開始之前,需要注意的是,在日誌記錄中存在一個層次結構,稱為日誌樹或日誌者層次結構。此層次結構由幾個層級組成,每個層級代表了日誌資訊的不同嚴重程度。最常見的層次是:
二、建立模組讓我們建立一個名為CRITICAL #A critical error occurred, the program may not be able to continue running.
ERROR #An An indication that something unexpected happened or indicative of some problem in the near future.
INFO #General information about the program's execution.
DEBUG #Detailed information for debugging purposes.
set_logging.py的python模組:
import logging logger = logging.getLogger() def set_logger(): logger.setLevel(logging.INFO) handler = logging.StreamHandler() handler.setLevel(logger_level) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler)
getLogger函數建立一個日誌器實例,並使用
setLevel來設定日誌等級(
DEBUG、
INFO等)。日誌器的
setLevel方法就像一個過濾器,它決定了一條日誌訊息是否應該被處理並傳送給處理程序。例如,如果我們將日誌記錄器的等級設定為
INFO,那麼日誌記錄器就不會向處理程序發送等級為
DEBUG的訊息,因為它們的嚴重程度低於在日誌記錄器上設定的最低等級。它只將等級為
INFO或更高的日誌訊息(即
WARNING、
ERROR或
CRITICAL)傳送給處理程序進行處理。
StreamHandler,將日誌資訊傳送到一個流中,如控制台或終端。它被用來輸出日誌資訊以達到調試的目的。我們也為處理程序設定了等級。
logger.setLevel(logging.INFO)由於日誌記錄器的層級被設定為file_handler = logging.FileHandler()
file_handler.setLevel(logging.ERROR)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.WARNING)
INFO,它只向兩個處理程式傳送等級為
INFO或更高的日誌訊息,但每個處理程序只處理達到或超過其指定日誌等級的訊息。
set_logger,如下所示:
import logging from set_logging import set_logger set_logger() logger = logging.getLogger() def roman_number(s: str) -> int: dic = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000} res = 0 pre = None for char in s: res += dic.get(char) if dic.get(pre) and dic.get(pre) < dic.get(char): res -= 2 * dic.get(pre) pre = char logger.info("logging is awesome") return res roman_number("IV")
2023-03-04 02:26:57,619 - root - INFO - logging is awesome#三、使用日誌的優點
級別。一個日誌記錄器提供了一種方法來為不同類型的消息設定不同的日誌級別,例如DEBUG、
INFO 、
WARNING、
ERROR和
CRITICAL。這使得根據日誌訊息的嚴重程度來過濾和確定其優先順序變得更加容易。當然,列印可以模仿與日誌相同的行為,但它需要更多的硬編碼工作,而且不像日誌那樣靈活。
。列印日誌資訊可能比使用記錄器慢,特別是在處理大量資料或頻繁進行記錄的時候。
。記錄器提供了一種方法來配置應用程式的日誌行為,如日誌等級、日誌目的地和日誌格式,而無需修改原始程式碼。這使得隨著時間的推移,更容易管理和維護日誌行為。
以上是Python中logging日誌模組程式碼怎麼調試的詳細內容。更多資訊請關注PHP中文網其他相關文章!