Added some files
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package logging
|
||||
|
||||
import (
|
||||
"github.com/labstack/echo/v5"
|
||||
"github.com/labstack/echo/v5/middleware"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// RequestLogger is an Echo middleware that logs HTTP requests using Zap
|
||||
func RequestLogger() echo.MiddlewareFunc {
|
||||
return middleware.RequestLoggerWithConfig(middleware.RequestLoggerConfig{
|
||||
LogStatus: true,
|
||||
LogURI: true,
|
||||
LogMethod: true,
|
||||
HandleError: true,
|
||||
LogValuesFunc: func(c *echo.Context, v middleware.RequestLoggerValues) error {
|
||||
logger := GetLogger()
|
||||
|
||||
fields := []zap.Field{
|
||||
zap.String("method", v.Method),
|
||||
zap.String("uri", v.URI),
|
||||
zap.Int("status", v.Status),
|
||||
}
|
||||
|
||||
if v.Error != nil {
|
||||
fields = append(fields, zap.String("error", v.Error.Error()))
|
||||
logger.Error("Request error", fields...)
|
||||
} else {
|
||||
logger.Info("Request completed", fields...)
|
||||
}
|
||||
return nil
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// ErrorHandler is a custom error handler that logs errors
|
||||
func ErrorHandler(err error, c *echo.Context) {
|
||||
logger := GetLogger()
|
||||
logger.Error("Error occurred",
|
||||
zap.String("method", c.Request().Method),
|
||||
zap.String("path", c.Request().URL.Path),
|
||||
zap.String("error", err.Error()),
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user