package uiux import ( "github.com/gin-gonic/gin" "go.uber.org/zap" ) func LoggingMiddleware(logger *zap.Logger) gin.HandlerFunc { return func(c *gin.Context) { logger.Info("Incoming request", zap.String("method", c.Request.Method), zap.String("path", c.Request.URL.Path), ) c.Next() logger.Info("Request completed", zap.Int("status", c.Writer.Status()), zap.String("path", c.Request.URL.Path), ) } } func ErrorMiddleware(logger *zap.Logger) gin.HandlerFunc { return func(c *gin.Context) { c.Next() // Xử lý lỗi nếu có if len(c.Errors) > 0 { errs := make([]error, len(c.Errors)) for i, e := range c.Errors { errs[i] = e.Err } logger.Error("Request failed", zap.String("path", c.Request.URL.Path), zap.Errors("errors", errs), ) } } }