gin使用logrus
main.go
package main
import (
"os"
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
)
var log = logrus.New() // 創建一個log示例
func initLogrus() (err error) { // 初始化log的函數
log.Formatter = &logrus.JSONFormatter{} // 設置為json格式的日志
f, err := os.OpenFile("./zdc.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) // 創建一個log日志文件
if err != nil {
return
}
log.Out = f // 設置log的默認文件輸出
gin.SetMode(gin.ReleaseMode) // 線上模式,控制台不會打印信息
gin.DefaultWriter = log.Out // gin框架自己記錄的日志也會輸出
log.Level = logrus.InfoLevel // 設置日志級別
return
}
func main() {
err := initLogrus()
if err != nil {
panic(err)
}
r := gin.Default()
r.GET("/index", func(c *gin.Context) {
log.WithFields(logrus.Fields{
"msg": "測試的錯誤",
}).Warn("這是一個warnning級別的日志")
c.JSON(200, gin.H{
"code": 0,
"data": gin.H{
"name": "zdc",
"age": 18,
},
})
})
_ = r.Run()
}
log文件:
{"fields.msg":"測試的錯誤","level":"warning","msg":"這是一個warnning級別的日志","time":"2019-08-28T18:49:07+08:00"}
[GIN] 2019/08/28 - 18:49:07 | 200 | 20.0011ms | 127.0.0.1 | GET /index
{"fields.msg":"測試的錯誤","level":"warning","msg":"這是一個warnning級別的日志","time":"2019-08-28T18:49:09+08:00"}
[GIN] 2019/08/28 - 18:49:09 | 200 | 0s | 127.0.0.1 | GET /index