Added some files

This commit is contained in:
2026-05-21 22:25:31 +02:00
parent d0fbba86f1
commit f0653489d6
3 changed files with 242 additions and 0 deletions
+44
View File
@@ -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()),
)
}