gin使用 logrus打印日志


安裝插件

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM