Gin框架入门(五)—日志

官方文档:https://godoc.org/github.com/gin-gonic/gin
官方地址:https://github.com/gin-gonic/gin

日志的输出

func main() {
	//禁用控制台颜色,在将日志写入文件时不需要控制台颜色
	gin.DisableConsoleColor()
	
	//如果需要控制台输出带有颜色的字体,请使用下面代码
	//gin.ForceConsoleColor()

	//如果需要将日志写入文件,请使用以下代码
	//创建日志文件
	f, _ := os.Create("gin.log")
	gin.DefaultWriter = io.MultiWriter(f)

	//如果需要将日志输出到控制台,请使用以下代码
	//gin.DefaultWriter = io.MultiWriter(os.Stdout)


	//如果需要同时将日志写入文件和控制台,请使用以下代码
	//gin.DefaultWriter = io.MultiWriter(f, os.Stdout)

	router := gin.Default()
	router.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong")
	})
	router.Run(":8080")
}

在这里插入图片描述
Gin框架入门(五)—日志_第1张图片

自定义日志格式

func main() {
router := gin.New()

// LoggerWithFormatter 中间件会将日志写入 gin.DefaultWriter
// gin.DefaultWriter = os.Stdout 默认控制台输出
router.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {

	// 你的自定义格式
	return fmt.Sprintf("%s\t|\t%s|\t%s|\t%s|\t%s|\t%d|\t%s|\t%s|\t%s \n",
		//客户端IP
		param.ClientIP,
		//时间格式
		param.TimeStamp.Format("2006-01-02 15:04:05"),
		//http请求方式 get post等
		param.Method,
		//客户端请求的路径
		param.Path,
		//http请求协议版本
		param.Request.Proto,
		//http请求状态码
		param.StatusCode,
		//耗时
		param.Latency,
		//http请求代理头
		param.Request.UserAgent(),
		//处理请求错误时设置错误消息
		param.ErrorMessage,
		)
	}))
	router.Use(gin.Recovery())

	router.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong")
	})

	router.Run(":8080")
}

日志输出结果:

::1	|	2019-06-11 13:57:41|	GET|	/|	HTTP/1.1|	404|	0s|	Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36|	 

你可能感兴趣的:(Go,Gin框架)