Log - 一個簡潔且多彩的 Go 語言日誌庫
背景介紹
在日常的開發工作中,我們經常需要記錄程序運行過程中的各種信息,以便於我們瞭解程序的運行狀態,發現並解決問題。然而,標準的日誌庫通常功能單一,輸出格式單調,缺乏人性化的設計,使得我們在查看日誌時需要花費大量的時間和精力。因此,我們需要一個功能強大,易於使用,輸出格式豐富多彩的日誌庫,來提高我們的開發效率。
今天要給大家推薦一個 GitHub 開源項目 charmbracelet/log,該項目在 GitHub 有超過 1.5k Star,用一句話介紹該項目就是:“A minimal, colorful Go logging library”。
項目介紹
Log 是一個簡潔且多彩的 Go 語言日誌庫。它提供了一個具有多級別、結構化、人類可讀的日誌記錄器,並且 API 使用簡單。與標準日誌庫不同,Log 提供了可定製的多彩人類可讀日誌記錄,包括以下特點:
-
• 使用 Lip Gloss 來樣式化和色彩化輸出。
-
• 多彩的、人類可讀的格式。
-
• 能夠定製時間戳格式。
-
• 跳過調用者框架並將函數標記爲助手。
-
• 多級別日誌記錄。
-
• 文本、JSON 和 Logfmt 格式化器。
-
• 在上下文中存儲和檢索日誌記錄器。
-
• 標準日誌適配器。
以下是一些具體的使用示例:
1、基本使用
log.Debug("Cookie 🍪") // won't print anything
log.Info("Hello World!")
2、增加額外的 Option
logger := log.NewWithOptions(os.Stderr, log.Options{
ReportCaller: true,
ReportTimestamp: true,
TimeFormat: time.Kitchen,
Prefix: "Baking 🍪 "
})
logger.Info("Starting oven!", "degree", 375)
time.Sleep(10 * time.Minute)
logger.Info("Finished baking")
更多使用示例請查看 GitHub。
如何使用
首先,使用 go get 命令下載依賴:
go get github.com/charmbracelet/log@latest
然後,在你的 Go 文件中導入它:
import "github.com/charmbracelet/log"
你可以使用 log.Print() 來打印沒有級別前綴的消息,或者使用 New() 來創建新的日誌記錄器。此外,Log 提供了多個級別來過濾你的日誌,你可以使用 log.SetLevel() 來設置日誌級別,或者使用 log.Options{Level: } 來創建具有特定日誌級別的新日誌記錄器。
項目推介
Log 由 Charmbracelet 團隊開發和維護。Charmbracelet 是一個知名的開源團隊,他們開發的項目廣受開發者喜愛。Log 項目的設計理念和實現方式都非常出色,無論是對於日誌記錄的需求,還是對於學習 Go 語言的開發者來說,都是一個非常好的選擇。
以下是該項目 Star 趨勢圖(代表項目的活躍程度):
更多項目詳情請查看如下鏈接。
開源項目地址:https://github.com/charmbracelet/log
開源項目作者:charmbracelet
以下是參與項目建設的所有成員:
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/JwR_W7kCj3a69QcMvM9pSA