Documentation ¶
Index ¶
Constants ¶
View Source
const ( LevelDebug = "debug" // 除錯訊息 LevelInfo = "info" // 一般訊息 LevelWarn = "warn" // 警告訊息 LevelError = "error" // 錯誤訊息 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EmptyStream ¶
type EmptyStream struct {
// contains filtered or unexported fields
}
EmptyStream 空記錄
func (*EmptyStream) EndFlush ¶
func (this *EmptyStream) EndFlush()
EndFlush 結束記錄, 並把記錄加回到 Retain 中, 然後儲存記錄
type Logger ¶
type Logger interface { // Initialize 初始化處理 Initialize() error // Finalize 結束處理 Finalize() // Get 取得儲存器 Get() Retain }
Logger 日誌介面, 實作時需要注意會在多執行緒環境下運作
type Logmgr ¶
type Logmgr struct {
// contains filtered or unexported fields
}
Logmgr 日誌管理器, 用於執行管理日誌相關功能; 使用前需要執行 Add 新增日誌; 使用完畢需要執行 Finalize 結束所有日誌
新增日誌時, 有以下預設日誌物件可用
- EmptyLogger: 空日誌, 不會輸出任何訊息
- ZapLogger: uber實現的高效能日誌功能
如果使用者想要自訂日誌, 需要實現 Logger 介面與 Stream 介面
Logmgr 提供以下日誌函式: Debug, Info, Warn, Error
type Retain ¶
type Retain interface { // Clear 清空內部 Stream 列表 Clear() Retain // Flush 儲存並清空內部 Stream 列表 Flush() Retain // Debug 記錄除錯訊息, 用於記錄除錯訊息 Debug(label string) Stream // Info 記錄一般訊息, 用於記錄一般訊息 Info(label string) Stream // Warn 記錄警告訊息, 用於記錄邏輯錯誤 Warn(label string) Stream // Error 記錄錯誤訊息, 用於記錄嚴重錯誤 Error(label string) Stream }
Retain 儲存介面, 實作時需要注意會在多執行緒環境下運作
type Stream ¶
type Stream interface { // Message 記錄訊息 Message(format string, a ...any) Stream // KV 記錄索引與數值 KV(key string, value any) Stream // Caller 記錄呼叫位置 Caller(skip int, simple ...bool) Stream // Error 記錄錯誤 Error(err error) Stream // End 結束記錄, 並把記錄加回到 Retain 中 End() Retain // EndFlush 結束記錄, 並把記錄加回到 Retain 中, 然後儲存記錄 EndFlush() }
Stream 記錄介面, 實作時需要注意會在多執行緒環境下運作
type ZapLogger ¶
type ZapLogger struct { Name string `yaml:"name"` // 日誌名稱, 會被用到日誌檔案名稱上 Path string `yaml:"path"` // 日誌路徑, 指定日誌檔案的位置 Json bool `yaml:"json"` // 是否使用json格式日誌, 建議正式環境使用json格式日誌 Console bool `yaml:"console"` // 是否輸出到控制台 File bool `yaml:"file"` // 是否輸出到日誌檔案 Level string `yaml:"level"` // 輸出日誌等級, 當記錄的日誌等級超過此值時才會儲存到檔案中; 有以下選擇: LevelDebug, LevelInfo, LevelWarn, LevelError TimeLayout string `yaml:"timeLayout"` // 時間布局字串 TimeZone string `yaml:"timeZone"` // 時區字串, 採用與 time.LoadLocation 一樣的方式, 預設是UTC+0 MaxSize int `yaml:"maxSize"` // 日誌大小(MB), 當日誌檔案超過此大小時就會建立新檔案, 預設是100MB MaxTime int `yaml:"maxTime"` // 日誌保留時間(日), 當日誌檔案儲存超過此時間時會被刪除, 預設不會刪除檔案 MaxBackups int `yaml:"maxBackups"` // 日誌保留數量, 當日誌檔案數量超過此數量時會刪除舊檔案, 預設不會刪除檔案 Compress bool `yaml:"compress"` // 是否壓縮日誌檔案, 預設不會壓縮 Jsonify bool `yaml:"jsonify"` // 物件記錄時是否以json字串記錄, 預設為關閉 // contains filtered or unexported fields }
ZapLogger zap日誌, uber實現的高效能日誌功能; 使用前必須填寫好 ZapLogger 中的公開成員, 可以選擇從yaml格式的配置檔案來填寫 ZapLogger 結構; 使用時要注意由於 ZapRetain 並非執行緒安全, 因此使用時不可以把 ZapRetain 儲存下來使用
type ZapRetain ¶
type ZapRetain struct {
// contains filtered or unexported fields
}
ZapRetain zap儲存器
Click to show internal directories.
Click to hide internal directories.