golang標準庫提供一個簡單log套件,目前只包含簡單功能(print、panic、fatal),對於更詳細的日誌紀錄格式並沒有提供支援,接下來我們選第三方的日誌系統(logrus),並透過它來建立日誌功能。
logrus是使用Go實現的日誌系統,完兼容golang的標準日誌模塊,logrus支援6種等級的日誌級別: debug、info、warm、error、fatal和panic,且與標準函式庫log套件完全相容。
如何安裝logrus
go get -u github.com/sirupsen/logrus
簡單使用範例
package main
import (
"github.com/sirupsen/logrus"
)
func main() {
logrus.Info("example log")
logrus.WithFields(logrus.Fields{
"trace": "trace-0001",
}).Error("Error Log")
}
定義logrus輸出的格式和log等級
func init(){
//log輸出為json格式
logrus.SetFormatter(&logrus.JSONFormatter{})
//輸出設定為標準輸出(預設為stderr)
logrus.SetOutput(os.Stdout)
//設定要輸出的log等級
logrus.SetLevel(logrus.DebugLevel)
}
輸出結果
{"level":"info","msg":"example log","time":"2020-09-13T19:32:15+08:00"}
{"level":"error","msg":"Error Log","time":"2020-09-13T19:32:15+08:00","trace":"trace-0001"}
系統有一個良好的日誌記錄,不管是要用來查詢系統問題或分析資料,還是單純的記錄資料,這些都可以方便我們補助查詢問題和分析。