目錄
一、日誌層級
首頁 後端開發 Python教學 Python中logging日誌模組程式碼怎麼調試

Python中logging日誌模組程式碼怎麼調試

May 10, 2023 pm 04:31 PM
python logging

一、日誌層級

在開始之前,需要注意的是,在日誌記錄中存在一個層次結構,稱為日誌樹或日誌者層次結構。此層次結構由幾個層級組成,每個層級代表了日誌資訊的不同嚴重程度。最常見的層次是:

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來設定日誌等級(DEBUGINFO等)。日誌器的setLevel方法就像一個過濾器,它決定了一條日誌訊息是否應該被處理並傳送給處理程序。例如,如果我們將日誌記錄器的等級設定為INFO,那麼日誌記錄器就不會向處理程序發送等級為DEBUG的訊息,因為它們的嚴重程度低於在日誌記錄器上設定的最低等級。它只將等級為INFO或更高的日誌訊息(即WARNINGERRORCRITICAL)傳送給處理程序進行處理。

我們建立一個

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

#三、使用日誌的優點

  • 級別。一個日誌記錄器提供了一種方法來為不同類型的消息設定不同的日誌級別,例如DEBUGINFO WARNINGERRORCRITICAL。這使得根據日誌訊息的嚴重程度來過濾和確定其優先順序變得更加容易。當然,列印可以模仿與日誌相同的行為,但它需要更多的硬編碼工作,而且不像日誌那樣靈活。

  • ##效能

    。列印日誌資訊可能比使用記錄器慢,特別是在處理大量資料或頻繁進行記錄的時候。

  • 可配置性

    。記錄器提供了一種方法來配置應用程式的日誌行為,如日誌等級、日誌目的地和日誌格式,而無需修改原始程式碼。這使得隨著時間的推移,更容易管理和維護日誌行為。

################################# ####靈活性###。記錄器允許你將日誌資訊傳送到多個目的地,例如控制台、檔案或資料庫。這種靈活性使得管理日誌和分析它們變得更加容易。### ######

以上是Python中logging日誌模組程式碼怎麼調試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PS一直顯示正在載入是什麼原因? PS一直顯示正在載入是什麼原因? Apr 06, 2025 pm 06:39 PM

PS“正在載入”問題是由資源訪問或處理問題引起的:硬盤讀取速度慢或有壞道:使用CrystalDiskInfo檢查硬盤健康狀況並更換有問題的硬盤。內存不足:升級內存以滿足PS對高分辨率圖片和復雜圖層處理的需求。顯卡驅動程序過時或損壞:更新驅動程序以優化PS和顯卡之間的通信。文件路徑過長或文件名有特殊字符:使用簡短的路徑和避免使用特殊字符。 PS自身問題:重新安裝或修復PS安裝程序。

PS啟動時一直顯示正在載入如何解決? PS啟動時一直顯示正在載入如何解決? Apr 06, 2025 pm 06:36 PM

PS啟動時卡在“正在載入”可能是由於各種原因造成的:禁用損壞或衝突的插件。刪除或重命名損壞的配置文件。關閉不必要的程序或升級內存,避免內存不足。升級到固態硬盤,加快硬盤讀取速度。重裝PS修復損壞的系統文件或安裝包問題。查看錯誤日誌分析啟動過程中的錯誤信息。

PS打開文件時一直顯示正在載入如何解決? PS打開文件時一直顯示正在載入如何解決? Apr 06, 2025 pm 06:33 PM

PS打開文件時出現“正在載入”卡頓,原因可能包括:文件過大或損壞、內存不足、硬盤速度慢、顯卡驅動問題、PS版本或插件衝突。解決方法依次為:檢查文件大小和完整性、增加內存、升級硬盤、更新顯卡驅動、卸載或禁用可疑插件、重裝PS。通過逐步排查,並善用PS的性能設置,養成良好的文件管理習慣,可以有效解決該問題。

mysql安裝後怎麼使用 mysql安裝後怎麼使用 Apr 08, 2025 am 11:48 AM

文章介紹了MySQL數據庫的上手操作。首先,需安裝MySQL客戶端,如MySQLWorkbench或命令行客戶端。 1.使用mysql-uroot-p命令連接服務器,並使用root賬戶密碼登錄;2.使用CREATEDATABASE創建數據庫,USE選擇數據庫;3.使用CREATETABLE創建表,定義字段及數據類型;4.使用INSERTINTO插入數據,SELECT查詢數據,UPDATE更新數據,DELETE刪除數據。熟練掌握這些步驟,並學習處理常見問題和優化數據庫性能,才能高效使用MySQL。

PS羽化如何控製過渡的柔和度? PS羽化如何控製過渡的柔和度? Apr 06, 2025 pm 07:33 PM

羽化控制的關鍵在於理解其漸變本質。 PS本身不提供直接控制漸變曲線的選項,但你可以通過多次羽化、配合蒙版、精細選區,靈活調整半徑和漸變柔和度,實現自然過渡效果。

mysql 是否要付費 mysql 是否要付費 Apr 08, 2025 pm 05:36 PM

MySQL 有免費的社區版和收費的企業版。社區版可免費使用和修改,但支持有限,適合穩定性要求不高、技術能力強的應用。企業版提供全面商業支持,適合需要穩定可靠、高性能數據庫且願意為支持買單的應用。選擇版本時考慮的因素包括應用關鍵性、預算和技術技能。沒有完美的選項,只有最合適的方案,需根據具體情況謹慎選擇。

mysql安裝後怎麼優化數據庫性能 mysql安裝後怎麼優化數據庫性能 Apr 08, 2025 am 11:36 AM

MySQL性能優化需從安裝配置、索引及查詢優化、監控與調優三個方面入手。 1.安裝後需根據服務器配置調整my.cnf文件,例如innodb_buffer_pool_size參數,並關閉query_cache_size;2.創建合適的索引,避免索引過多,並優化查詢語句,例如使用EXPLAIN命令分析執行計劃;3.利用MySQL自帶監控工具(SHOWPROCESSLIST,SHOWSTATUS)監控數據庫運行狀況,定期備份和整理數據庫。通過這些步驟,持續優化,才能提升MySQL數據庫性能。

PS羽化怎麼設置? PS羽化怎麼設置? Apr 06, 2025 pm 07:36 PM

PS羽化是一種圖像邊緣模糊效果,通過在邊緣區域對像素加權平均實現。設置羽化半徑可以控制模糊程度,數值越大越模糊。靈活調整半徑可根據圖像和需求優化效果,如處理人物照片時使用較小半徑保持細節,處理藝術作品時使用較大半徑營造朦朧感。但需注意,半徑過大易丟失邊緣細節,過小則效果不明顯。羽化效果受圖像分辨率影響,且需要根據圖像理解和效果把握進行調整。

See all articles