golang-im聊天
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

vor 2 Jahren
123456789101112131415161718192021222324
  1. package util
  2. import (
  3. "fmt"
  4. "gim/pkg/logger"
  5. "runtime"
  6. "go.uber.org/zap"
  7. )
  8. // RecoverPanic 恢复panic
  9. func RecoverPanic() {
  10. err := recover()
  11. if err != nil {
  12. logger.Logger.DPanic("panic", zap.Any("panic", err), zap.String("stack", GetStackInfo()))
  13. }
  14. }
  15. // GetStackInfo 获取Panic堆栈信息
  16. func GetStackInfo() string {
  17. buf := make([]byte, 4096)
  18. n := runtime.Stack(buf, false)
  19. return fmt.Sprintf("%s", buf[:n])
  20. }