Python日志記錄怎么做?logging模塊

記錄 python 程序日志的推薦方式是使用內置 Logging 模塊。1. 基本用法:調用 logging.basicconfig() 配合 info、warning 等方法輸出日志,默認只顯示 warning 及以上級別,需設置 level=logging.info 才能顯示 info 級別;常用級別按從低到高順序為 debug、info、warning(默認)、Error、critical。2. 進階配置:通過 basicconfig 設置 filename 將日志寫入文件,通過 format 定義格式并添加時間戳等信息。3. 多模塊打日志:使用 getlogger 創建不同 logger 并設置獨立級別和輸出格式,便于區分來源與管理。4. 注意事項:避免混用 print 與 logging,防止重復添加 handler 導致重復輸出,生產環境建議關閉 debug 級別以提升性能。logging 功能全面,建議先掌握基礎再逐步深入。

Python日志記錄怎么做?logging模塊

記錄 python 程序的日志,最常用也最推薦的方式就是使用內置的 logging 模塊。它功能全面、配置靈活,能滿足大多數項目的日志需求。

Python日志記錄怎么做?logging模塊


基本用法:快速上手

剛開始用 logging 的時候,直接調用 logging.basicConfig() 配合幾個常用的日志輸出方法就能滿足基本需求。

Python日志記錄怎么做?logging模塊

import logging  logging.basicConfig(level=logging.INFO) logging.info("這是一條信息日志") logging.warning("這是一條警告日志")

這樣會把日志輸出到控制臺,默認只顯示 WARNING 及以上級別。如果你想看到 INFO 級別的日志,記得設置 level=logging.INFO。

立即學習Python免費學習筆記(深入)”;

常用日志級別從低到高分別是:

Python日志記錄怎么做?logging模塊

  • DEBUG
  • INFO
  • WARNING(默認)
  • ERROR
  • CRITICAL

進階配置:格式和輸出位置

如果你希望日志有更清晰的格式,或者想保存到文件里,就需要對 basicConfig 做進一步配置。

比如下面這個例子,把日志寫入文件,并加上時間戳:

logging.basicConfig(     filename="app.log",     level=logging.DEBUG,     format="%(asctime)s - %(levelname)s - %(message)s" )

這樣你就可以在 app.log 文件中看到類似這樣的內容:

2025-04-05 10:30:00,123 - INFO - 這是一條信息日志 2025-04-05 10:30:05,456 - ERROR - 出錯了!

關鍵參數說明:

  • filename:指定日志文件名
  • format:定義日志格式
  • datefmt:可選,自定義時間格式

多個模塊/組件打日志:使用 logger 名字

當項目變大后,建議為不同模塊創建不同的 logger,方便區分日志來源。

logger = logging.getLogger("my_module") logger.setLevel(logging.DEBUG)  handler = logging.FileHandler("my_module.log") formatter = logging.Formatter("%(name)s - %(levelname)s - %(message)s") handler.setFormatter(formatter)  logger.addHandler(handler) logger.debug("來自 my_module 的調試信息")

這種方式的好處是:

  • 可以為不同模塊設置不同的日志級別或輸出方式
  • 日志結構更清晰,排查問題更快捷

常見注意事項

  • 不要混用 print 和 logging:上線后應該統一用 logging,print 不便于管理。
  • 避免重復添加 handler:多次運行腳本時,可能會導致日志重復輸出,可以在添加前判斷是否已有 handler。
  • 生產環境建議關閉 DEBUG 級別:避免產生大量日志影響性能。

基本上就這些。logging 模塊功能很全,但一開始不需要全掌握,先學會基礎用法,遇到具體需求再深入研究。

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享