32 lines
670 B
Go
32 lines
670 B
Go
|
|
package middlewares
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/gin-gonic/gin"
|
||
|
|
|
||
|
|
"furtuna-be/internal/common/request"
|
||
|
|
)
|
||
|
|
|
||
|
|
func Logger() gin.HandlerFunc {
|
||
|
|
return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
|
||
|
|
var parsedReqInfo request.RequestInfo
|
||
|
|
|
||
|
|
reqInfo, exists := param.Keys[request.ReqInfoKey]
|
||
|
|
if exists {
|
||
|
|
parsedReqInfo = reqInfo.(request.RequestInfo)
|
||
|
|
}
|
||
|
|
|
||
|
|
return fmt.Sprintf("%s - [HTTP] TraceId: %s; UserId: %d; Method: %s; Path: %s; Status: %d, Latency: %s;\n\n",
|
||
|
|
param.TimeStamp.Format(time.RFC1123),
|
||
|
|
parsedReqInfo.TraceId,
|
||
|
|
parsedReqInfo.UserId,
|
||
|
|
param.Method,
|
||
|
|
param.Path,
|
||
|
|
param.StatusCode,
|
||
|
|
param.Latency,
|
||
|
|
)
|
||
|
|
})
|
||
|
|
}
|