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, ) }) }