Python日誌記錄器詳解 Loguru

2021-10-21 19:59:12 字數 3034 閱讀 5122

loguru乙個能徹底解放你的日誌記錄器。

它即插即用,具備多種方式滾動日誌、自動壓縮日誌檔案、定時刪除等功能。

除此之外,多執行緒安全、高亮日誌、日誌告警等功能也不在話下。

下面就給大家介紹一下這個強大工具的基本使用方法。

loguru 安裝方式很簡單,開啟終端輸入:

pip install loguru
即可完成安裝。

如果你需要輸出 debug 日誌到終端,可以這麼做:

from loguru import logger

logger.debug("that's it, beautiful and ****** logging!")

其輸出自帶高亮:

如果你需要把日誌輸出到檔案,只需要這樣:

from loguru import logger

logger.add("file_.log")

logger.debug("that's it, beautiful and ****** logging!")

這樣就會在當前執行的資料夾下生成file_當前時間.log的日誌檔案:

使用 loguru 我們可輕易地實現滾動日誌。

按時間滾動

比如按時間滾動,我們只需要在 logger.add 引數中新增乙個 rotation 引數:

from loguru import logger

logger.add("file_2.log", rotation="12:00") # 每天12:00會建立乙個新的檔案

logger.debug("that's it, beautiful and ****** logging!")

這樣,如果當前時間過了這個設定的時間,它就會生成乙個新的日誌檔案。如果沒有則使用原來的日誌檔案:

如圖所示,過了設定的時間,則將原來的 file_2.log 重新命名,並新增乙個新的 file_2.log 檔案。

按大小滾動

除了按時間滾動日誌外,loguru 還可以按日誌大小滾動:

from loguru import logger

logger.add("file_1.log", rotation="1 mb") # 滾動大日誌檔案

logger.debug("that's it, beautiful and ****** logging!")

這樣,一旦日誌檔案大小超過 1 mb 就會產生新的日誌檔案。

壓縮日誌

如果你不想刪除原有日誌檔案,loguru 還支援將日誌直接壓縮:

from loguru import logger

logger.add("file_y.log", compression="zip") # 壓縮日誌

自定義顏色

logger.add(sys.stdout, colorize=true, format="

")

類似於html標籤 標籤中間的文字將會被標記為綠色。

多程序安全

loguru 預設情況下是執行緒安全的,但它不是多程序安全的。不過如果你需要多程序/非同步記錄日誌,它也能支援,只需要新增乙個 enqueue 引數:

logger.add("somefile.log", enqueue=true)
支援backtrace對於日誌而言,沒有錯誤堆疊的日誌是沒有靈魂的。loguru 允許顯示整個堆疊資訊來幫助你發現問題(包括變數)。

比如下面這個例子:

logger.add("out.log", backtrace=true, diagnose=true) # caution, may leak sensitive data in prod

def func(a, b):

return a / b

def nested(c):

try:

func(5, c)

except zerodivisionerror:

logger.exception("what?!")

nested(0)

日誌將會是這樣的:

非常清晰明了。

郵件告警

loguru 可以和強大的郵件通知模組notifiers庫結合使用,以在程式意外失敗時接收電子郵件,或傳送許多其他型別的通知。

import notifiers

params =

# 初始化時傳送一封郵件

notifier = notifiers.get_notifier("gmail")

# 發生error日誌時,發郵件進行警報

from notifiers.logging import notificationhandler

handler = notificationhandler("gmail", defaults=params)

logger.add(handler, level="error")

這樣配置之後,每次產生 error 日誌,程式都會自動向你的郵箱傳送告警,真的極其方便。

除了這些特性外,loguru 還支援與 python 原生的 logging 模組相容使用,你可以將原始的標準日誌記錄器記錄的所有資訊轉移到loguru中。

日誌記錄器 Logger

日誌記錄器 logger 是日誌處理的核心元件。log4j具有5種正常級別 level 日誌記錄器 logger 的可用級別level 不包括自定義級別 level static level debug debug level指出細粒度資訊事件對除錯應用程式是非常有幫助的。static level ...

日誌記錄器 Logger

日誌記錄器 logger 是日誌處理的核心元件。log4j具有5種正常級別 level 1.static level debug debug level指出細粒度資訊事件對除錯應用程式是非常有幫助的。2.static level info info level表明 訊息在粗粒度級別上突出強調應用程式...

Sysklogd系統日誌記錄器

inux系統上的syslogd有比較多的版本,現在使用的是 sysklogd 這個軟體。在ubuntu上輸入syslogd時候會提示可以選擇的syslogd版本 syslogd可以負責記錄系統運作中,kernel或應用程式產生的各種訊息。這些訊息被寫入到系統的紀錄檔中,讓管理人員,進行故障排除 追蹤...