gin使用 logrus列印日誌
阿新 • • 發佈:2020-08-08
安裝外掛
go get github.com/sirupsen/logrus
在專案根目錄下建立檔案:logger.log
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
"os"
"path"
"time"
}
// 日誌記錄到檔案
func LoggerToFile() gin.HandlerFunc {
fileName := config.Log_FILE_PATH //寫入檔案
src, err := os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
if err != nil {
fmt.Println("err", err)
}
//例項化
logger := logrus.New()
//設定輸出
logger.Out = src
//設定日誌級別
logger.SetLevel(logrus.DebugLevel)
//設定日誌格式
logger.SetFormatter(&logrus.TextFormatter{})
return func(c *gin.Context) {
// 開始時間
startTime := time.Now()
// 處理請求
c.Next()
// 結束時間
endTime := time.Now()
// 執行時間
latencyTime := endTime.Sub(startTime)
// 請求方式
reqMethod := c.Request.Method
// 請求路由
reqUri := c.Request.RequestURI
// 狀態碼
statusCode := c.Writer.Status()
// 請求IP
clientIP := c.Request.Host
// 日誌格式 logger.Infof("| %3d | %13v | %15s | %s | %s |",
statusCode,
latencyTime,
clientIP,
reqMethod,
reqUri,
)
}
}
Ok,只需要在mian.go中加入以下即可
engine := gin.Default() //在這行後新增
engine.Use(middleware.LoggerToFile())
執行一下,看看日誌:
{"level":"info","msg":"|200| 37916885 | localhost:9999 | GET | /test/appConfs | %!s(MISSING) |","time":"2020-08-08T18:19:13+08:00"}
這個time="2019-07-17T22:10:45+08:00"
,這個時間格式不是咱們想要的,怎麼辦?
時間需要格式化一下,修改logger.SetFormatter (這個我沒成功)
//設定日誌格式
logger.SetFormatter(&logrus.TextFormatter{
TimestampFormat:"2006-01-02 15:04:05",
})
我不喜歡文字格式,喜歡 JSON 格式,怎麼辦?
//設定日誌格式
logger.SetFormatter(&logrus.JSONFormatter{
TimestampFormat:"2006-01-02 15:04:05",
})
msg 資訊太多,自定義檢視
logger.WithFields(logrus.Fields{
"status_code" : statusCode,
"latency_time" : latencyTime2,
"client_ip" : clientIP,
"req_method" : reqMethod,
"req_uri" : reqUri,
}).Info()
執行一下,再看日誌:
{"client_ip":"localhost:9999","latency_time":35.62364,"level":"info","msg":"","req_method":"DELETE","req_uri":"/test/appConfs/235","status_code":200,"time":"2020-08-08T19:57:16+08:00"}
{"client_ip":"localhost:9999","latency_time":32.945312,"level":"error","msg":"","req_method":"DELETE","req_uri":"/test/appConfs/235","status_code":200,"time":"2020-08-08T19:59:12+08:00"}
注意,第二行的error,是我改了上一個程式碼塊的日誌級別
參考轉自:https://www.lmlphp.com/user/5082/article/item/350072/#logrus-%E4%BD%BF%E7%94%A8