41 lines
809 B
Go
41 lines
809 B
Go
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),
|
|
)
|
|
}
|
|
}
|
|
}
|