gin产生的日志默认是输出到控制台,平时我们都是输出到日志文件中好方便归档和问题定位,

本文将介绍服务产生的日志如何输出到文件中

在使用

gin.Default()

创建默认router时,其实只是对在原始router上默表述你添加了Logger()和Recovery()两个中间件。

添加Logger中间件后有请求进来就会打印请求信息日志,包含当前时间、状态码、请求耗时、客户端IP、请求路径等信息。支持根据状态码和请求方法的其他在终端展示出其他的背景色。

Logger中间件对应源码地址:https://github.com/gin-gonic/gin/blob/master/logger.go

gin.Logger

Logger中间件会获取请求有关信息,并通过LoggerConfig来控制这些信息的打印输出。

gin提供了4个方法来创建日志中间件:

Logger()以默认配置创建日志中间件,将所有请求信息按指定格式打印到标准输出。

LoggerWithWriter(outio.Writer,notlogged...string)可以自行设置日志输出位置和不打印日志的URL路径,日志格式使用默认配置。

LoggerWithFormatter(fLogFormatter)可以设置自定义的日志格式打印全部请求信息到标准输出,需要自己实现func(paramLogFormatterParams)string函数,可以参考默认的格式函数defaultLogFormatter。

LoggerWithConfig(confLoggerConfig)可以自定义LogFormatter日志内容格式化函数,io.Writer类型的日志输出位置(默表述stdout)和SkipPaths列表(其中设置的URL路径将不打印日志,默表述空)。

使用默认的Logger():

funcmain(){router:=gin.New() router.Use(gin.Logger())router.Run()}

使用LoggerWithWriter(outio.Writer,notlogged...string):

funcmain(){file,err:=os.OpenFile("app.log",os.O_RDWR|os.O_CREATE|os.O_APP