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來設定日誌等級(
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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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

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