Loading documentation...
Loading documentation...
Loading documentation...
Recovers from panics and returns a 500 Internal Server Error response. Prevents the server from crashing.
s.Use(middleware.Recover())s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
PrintStack: true,
StackSize: 4 * 1024, // 4KB
Output: os.Stderr,
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Custom panic handler
logs.Error("panic recovered", logs.Any("error", err))
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
},
}))true)os.Stderr)s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Log panic with context
logs.ErrorContext(r.Context(), "panic recovered",
logs.Any("error", err),
logs.String("path", r.URL.Path),
logs.String("method", r.Method),
)
// Send custom error response
helix.WriteProblem(w, helix.ErrInternal.WithDetailf("panic: %v", err))
},
}))s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
PrintStack: false, // Don't print stack trace
}))os.Stderr - redirect if you want logs elsewhereStackSize bytesRecovers from panics and returns a 500 Internal Server Error response. Prevents the server from crashing.
s.Use(middleware.Recover())s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
PrintStack: true,
StackSize: 4 * 1024, // 4KB
Output: os.Stderr,
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Custom panic handler
logs.Error("panic recovered", logs.Any("error", err))
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
},
}))true)os.Stderr)s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Log panic with context
logs.ErrorContext(r.Context(), "panic recovered",
logs.Any("error", err),
logs.String("path", r.URL.Path),
logs.String("method", r.Method),
)
// Send custom error response
helix.WriteProblem(w, helix.ErrInternal.WithDetailf("panic: %v", err))
},
}))s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
PrintStack: false, // Don't print stack trace
}))os.Stderr - redirect if you want logs elsewhereStackSize bytess.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
PrintStack: true,
StackSize: 4 * 1024, // 4KB
Output: os.Stderr,
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Custom panic handler
logs.Error("panic recovered", logs.Any("error", err))
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
},
}))s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Log panic with context
logs.ErrorContext(r.Context(), "panic recovered",
logs.Any("error", err),
logs.String("path", r.URL.Path),
logs.String("method", r.Method),
)
// Send custom error response
helix.WriteProblem(w, helix.ErrInternal.WithDetailf("panic: %v", err))
},
}))s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
PrintStack: true,
StackSize: 4 * 1024, // 4KB
Output: os.Stderr,
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Custom panic handler
logs.Error("panic recovered", logs.Any("error", err))
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
},
}))s.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
Handler: func(w http.ResponseWriter, r *http.Request, err any) {
// Log panic with context
logs.ErrorContext(r.Context(), "panic recovered",
logs.Any("error", err),
logs.String("path", r.URL.Path),
logs.String("method", r.Method),
)
// Send custom error response
helix.WriteProblem(w, helix.ErrInternal.WithDetailf("panic: %v", err))
},
}))