Documentation
¶
Index ¶
- func CustomRecoveryMiddleware(logger *logrus.Logger, handler func(c *gin.Context, err interface{})) gin.HandlerFunc
- func PanicBadRequest(message string, details interface{})
- func PanicConflict(message string, details interface{})
- func PanicForbidden(message string, details interface{})
- func PanicInternalError(message string, details interface{})
- func PanicNotFound(message string, details interface{})
- func PanicUnauthorized(message string, details interface{})
- func PanicWithHTTPError(statusCode int, message string, details interface{})
- func RecoveryMiddleware(logger *logrus.Logger, config *RecoveryConfig) gin.HandlerFunc
- func RecoveryWithStatsMiddleware(logger *logrus.Logger, collector *RecoveryStatsCollector, ...) gin.HandlerFunc
- func SecureRecoveryMiddleware(logger *logrus.Logger) gin.HandlerFunc
- type HTTPError
- type PanicInfo
- type RecoveryConfig
- type RecoveryStats
- type RecoveryStatsCollector
- type RequestInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CustomRecoveryMiddleware ¶
func CustomRecoveryMiddleware(logger *logrus.Logger, handler func(c *gin.Context, err interface{})) gin.HandlerFunc
CustomRecoveryMiddleware middleware de recovery con handler personalizado
func PanicBadRequest ¶
func PanicBadRequest(message string, details interface{})
Common panic helpers
func PanicConflict ¶
func PanicConflict(message string, details interface{})
func PanicForbidden ¶
func PanicForbidden(message string, details interface{})
func PanicInternalError ¶
func PanicInternalError(message string, details interface{})
func PanicNotFound ¶
func PanicNotFound(message string, details interface{})
func PanicUnauthorized ¶
func PanicUnauthorized(message string, details interface{})
func PanicWithHTTPError ¶
PanicHandler función helper para hacer panic con HTTPError
func RecoveryMiddleware ¶
func RecoveryMiddleware(logger *logrus.Logger, config *RecoveryConfig) gin.HandlerFunc
RecoveryMiddleware middleware para recuperación de panics
func RecoveryWithStatsMiddleware ¶
func RecoveryWithStatsMiddleware(logger *logrus.Logger, collector *RecoveryStatsCollector, config *RecoveryConfig) gin.HandlerFunc
RecoveryWithStatsMiddleware middleware de recovery que recolecta estadísticas
func SecureRecoveryMiddleware ¶
func SecureRecoveryMiddleware(logger *logrus.Logger) gin.HandlerFunc
SecureRecoveryMiddleware middleware de recovery que no expone información sensible
Types ¶
type HTTPError ¶
HTTPError representa un error HTTP con código de estado específico
func NewHTTPError ¶
NewHTTPError crea un nuevo HTTPError
type PanicInfo ¶
type PanicInfo struct { Error interface{} `json:"error"` Stack string `json:"stack,omitempty"` RequestInfo *RequestInfo `json:"request_info,omitempty"` Timestamp time.Time `json:"timestamp"` CorrelationID string `json:"correlation_id,omitempty"` RequestID string `json:"request_id,omitempty"` }
PanicInfo información sobre el panic
type RecoveryConfig ¶
type RecoveryConfig struct { // Stack trace settings EnableStackTrace bool StackSize int SkipFrames int // Response settings EnableDetailedError bool CustomErrorMessage string // Logging settings LogLevel logrus.Level LogStackTrace bool // Callbacks OnPanic func(c *gin.Context, err interface{}) OnRecovery func(c *gin.Context, err interface{}, stack []byte) // Security settings SanitizeResponse bool IncludeRequestInfo bool }
RecoveryConfig configuración del middleware de recovery
func DefaultRecoveryConfig ¶
func DefaultRecoveryConfig() *RecoveryConfig
DefaultRecoveryConfig retorna configuración por defecto
type RecoveryStats ¶
type RecoveryStats struct { TotalPanics int64 `json:"total_panics"` PanicsByType map[string]int64 `json:"panics_by_type"` PanicsByPath map[string]int64 `json:"panics_by_path"` LastPanic time.Time `json:"last_panic"` RecentPanics []PanicInfo `json:"recent_panics"` }
RecoveryStats estadísticas de recovery
type RecoveryStatsCollector ¶
type RecoveryStatsCollector struct {
// contains filtered or unexported fields
}
RecoveryStatsCollector recolecta estadísticas de recovery
func NewRecoveryStatsCollector ¶
func NewRecoveryStatsCollector() *RecoveryStatsCollector
NewRecoveryStatsCollector crea un nuevo recolector de estadísticas
func (*RecoveryStatsCollector) GetStats ¶
func (rsc *RecoveryStatsCollector) GetStats() RecoveryStats
GetStats retorna las estadísticas actuales
func (*RecoveryStatsCollector) RecordPanic ¶
func (rsc *RecoveryStatsCollector) RecordPanic(panicInfo *PanicInfo)
RecordPanic registra un panic
type RequestInfo ¶
type RequestInfo struct { Method string `json:"method"` Path string `json:"path"` Query string `json:"query,omitempty"` UserAgent string `json:"user_agent,omitempty"` ClientIP string `json:"client_ip"` Headers map[string]string `json:"headers,omitempty"` TenantID string `json:"tenant_id,omitempty"` UserID string `json:"user_id,omitempty"` }
RequestInfo información de la request que causó el panic