iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
DevOps

微服務系統建置與監控系列 第 8

Day8 日誌記錄-logrus

golang標準庫提供一個簡單log套件,目前只包含簡單功能(print、panic、fatal),對於更詳細的日誌紀錄格式並沒有提供支援,接下來我們選第三方的日誌系統(logrus),並透過它來建立日誌功能。

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"}

小結

系統有一個良好的日誌記錄,不管是要用來查詢系統問題或分析資料,還是單純的記錄資料,這些都可以方便我們補助查詢問題和分析。


上一篇
Day7 gRPC (3) Client
下一篇
Day9 Telegram Bot
系列文
微服務系統建置與監控30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言