26 lines
397 B
Go
26 lines
397 B
Go
package recovery
|
||
|
||
import (
|
||
"runtime/debug"
|
||
|
||
"go.uber.org/zap"
|
||
)
|
||
|
||
var logger *zap.Logger
|
||
|
||
func Init() {
|
||
// 初始化logger(这里简化处理,实际应该从外部传入)
|
||
logger, _ = zap.NewProduction()
|
||
}
|
||
|
||
// Recover 恢复panic
|
||
func Recover() {
|
||
if r := recover(); r != nil {
|
||
logger.Error("发生panic",
|
||
zap.Any("panic", r),
|
||
zap.String("stack", string(debug.Stack())),
|
||
)
|
||
}
|
||
}
|
||
|