mirror of
https://github.com/gofiber/fiber.git
synced 2025-02-22 09:12:59 +00:00
Recover middleware: Added, fiber.Ctx as a first paremeter to StackTraceHandler. (#1623)
This commit is contained in:
parent
5ff3bc88a3
commit
c9e959c4d4
@ -50,7 +50,7 @@ type Config struct {
|
|||||||
// StackTraceHandler defines a function to handle stack trace
|
// StackTraceHandler defines a function to handle stack trace
|
||||||
//
|
//
|
||||||
// Optional. Default: defaultStackTraceHandler
|
// Optional. Default: defaultStackTraceHandler
|
||||||
StackTraceHandler func(e interface{})
|
StackTraceHandler func(c *fiber.Ctx, e interface{})
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ type Config struct {
|
|||||||
// StackTraceHandler defines a function to handle stack trace
|
// StackTraceHandler defines a function to handle stack trace
|
||||||
//
|
//
|
||||||
// Optional. Default: defaultStackTraceHandler
|
// Optional. Default: defaultStackTraceHandler
|
||||||
StackTraceHandler func(e interface{})
|
StackTraceHandler func(c *fiber.Ctx, e interface{})
|
||||||
}
|
}
|
||||||
|
|
||||||
var defaultStackTraceBufLen = 1024
|
var defaultStackTraceBufLen = 1024
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func defaultStackTraceHandler(e interface{}) {
|
func defaultStackTraceHandler(c *fiber.Ctx, e interface{}) {
|
||||||
buf := make([]byte, defaultStackTraceBufLen)
|
buf := make([]byte, defaultStackTraceBufLen)
|
||||||
buf = buf[:runtime.Stack(buf, false)]
|
buf = buf[:runtime.Stack(buf, false)]
|
||||||
_, _ = os.Stderr.WriteString(fmt.Sprintf("panic: %v\n%s\n", e, buf))
|
_, _ = os.Stderr.WriteString(fmt.Sprintf("panic: %v\n%s\n", e, buf))
|
||||||
@ -30,7 +30,7 @@ func New(config ...Config) fiber.Handler {
|
|||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
if cfg.EnableStackTrace {
|
if cfg.EnableStackTrace {
|
||||||
cfg.StackTraceHandler(r)
|
cfg.StackTraceHandler(c, r)
|
||||||
}
|
}
|
||||||
|
|
||||||
var ok bool
|
var ok bool
|
||||||
|
Loading…
x
Reference in New Issue
Block a user