日志写入文件和控制台
package main
import (
"os"
"io"
"github.com/gin-gonic/gin"
)
func main() {
// 创建记录日志的文件, os.Stdout 同时将日志写入控制台
f, _ := os.Create("gin.log")
gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
router := gin.Default()
router.GET("/index", func(c *gin.Context) {
c.String(200, "Hi, gin ")
})
router.Run(":8000")
}
自定义日志格式
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.New()
// LoggerWithFormatter 中间件会将日志写入 gin.DefaultWriter
router.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
return fmt.Sprintf("%s - %s \"%s %s %s %d %s \"%s\" %s\"\n",
param.TimeStamp.Format("2006-01-02 03:04:05"),
param.ClientIP,
param.Method,
param.Path,
param.Request.Proto,
param.StatusCode,
param.Latency,
param.Request.UserAgent(),
param.ErrorMessage,
)
}))
router.Use(gin.Recovery())
router.GET("/index", func(c *gin.Context) {
c.String(200, "Hi, gin ")
})
router.Run(":8000")
}