如何将logger中间件输出数据传递到golang中的mysql表中



如何插入以下三个参数输出param.method,param.statusCode,param。时间戳。将记录器中间件中的(time.RFC822(格式化为mysql表

func logger() gin.HandlerFunc {
return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
return fmt.Sprintf("%s %d %s n",
param.Method,
param.StatusCode,
param.TimeStamp.Format(time.RFC822),
)
})
}

逻辑可能是这样的,我没有使用gin,代码也没有经过测试。

请求方法、响应状态代码、请求完成时间和请求处理时间记录在数据库中。

func logger(db *sql.DB) gin.HandlerFunc {
return func(ctx *gin.Context) {
now := time.Now()
ctx.Next()
db.Exec("INSERT INTO tb_logger(method,code,accesstime,handletime) VALUE(?,?,?,?)", ctx.Request.Method, ctx.Writer.Status(), time.Now().Format(time.RFC822), time.Now().Sub(now).String())
}
}

最新更新