package
0.0.0-20240618075331-b00dc440dc64
Repository: https://github.com/sugky7302/my-code-toolbox.git
Documentation: pkg.go.dev

# README

Logger

為了解決原生 logger 難用的問題,特別開發一個能夠「開箱即用」的高擴充性日誌功能。這個 Logger 模組基於 logrus & lumberjack 套件實作,主要達到將錯誤日誌與正常日誌分開以及將日誌輸出到檔案與控制台等兩大功能。

前置套件

  • golang.org/x/sys/unix

功能介紹

logger 輸出的美化以及限制是必備功能,本套件也支援並設計幾套常用工具,分別放在 formatter/hook/ 資料夾下。

formatter

美化日誌輸出。

  • beauty: 格式化日誌和日誌等級有顏色,以求標準化輸出。

hook

限制或轉換日誌資料,會在 formatter 執行之前生效。

  • fileline: 在輸出上顯示檔名和行數。內部支援相對路徑,但是必須設定環境變數 GO_PROJ_PATH
    • logrus 1.5.0,把 logrus.SetReportCaller(true) 放在裡面會造成程式卡住。
  • maxlevel: 只有日誌等級低於限制才會輸出。因為 logrus 本身隱含 minlevel,所以另一個不需要實現。

CHANGELOG

3.0 - 2024-03-19

  • 下載 logurs 和 lumberjack 至本地,並新增讀取 entry.Data 的程式,從根源阻絕 goroutine 讀寫的問題。

2.0 - 2024-01-16

  • 模仿 slog 功能,加強擴充性。
  • 遵循 ReactiveX 原則。

1.0 - 2023-05-14

成功實現檔案日誌和控制台日誌同步輸出。

# Packages

No description provided by the author
No description provided by the author
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
Package lumberjack provides a rolling logger.
No description provided by the author

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
New 會生成一個新的 Logger 實例。.
No description provided by the author
Windows 專用處理 panic 的函數.
No description provided by the author
為了方便使用,這裡提供了一些快捷函數。.
No description provided by the author
No description provided by the author

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

FormatterRunner 是為了解決直接執行自己的 formatter 會抓不到 entry.Message 的問題 以及無法在 logrus 執行自己的 formatter 的問題。.
Logger 遵循 logrus.Logger 的介面,並採用 ReactiveX 原則設計,達到更好的可測試性和擴充性。 除此之外,為了可以同時輸出,Logger 加入 children 的概念,可以同時輸出到多個地方。.