fix: 修复服务器消息报错不打印堆栈信息的问题
This commit is contained in:
parent
b5a4bc959d
commit
aa39d39160
|
@ -20,6 +20,7 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
"runtime/debug"
|
||||||
"strings"
|
"strings"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
@ -499,7 +500,9 @@ func (slf *Server) dispatchMessage(msg *Message) {
|
||||||
present := time.Now()
|
present := time.Now()
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
log.Error("Server", zap.String("MessageType", messageNames[msg.t]), zap.Any("MessageAttrs", msg.attrs), zap.Any("error", err), zap.Stack("stack"))
|
stack := string(debug.Stack())
|
||||||
|
log.Error("Server", zap.String("MessageType", messageNames[msg.t]), zap.Any("MessageAttrs", msg.attrs), zap.Any("error", err), zap.String("stack", stack))
|
||||||
|
fmt.Println(stack)
|
||||||
if e, ok := err.(error); ok {
|
if e, ok := err.(error); ok {
|
||||||
slf.OnMessageErrorEvent(msg, e)
|
slf.OnMessageErrorEvent(msg, e)
|
||||||
}
|
}
|
||||||
|
@ -543,7 +546,9 @@ func (slf *Server) dispatchMessage(msg *Message) {
|
||||||
if err := slf.ants.Submit(func() {
|
if err := slf.ants.Submit(func() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
log.Error("Server", zap.String("MessageType", messageNames[msg.t]), zap.Any("error", err), zap.Stack("stack"))
|
stack := string(debug.Stack())
|
||||||
|
log.Error("Server", zap.String("MessageType", messageNames[msg.t]), zap.Any("error", err), zap.String("stack", stack))
|
||||||
|
fmt.Println(stack)
|
||||||
if e, ok := err.(error); ok {
|
if e, ok := err.(error); ok {
|
||||||
slf.OnMessageErrorEvent(msg, e)
|
slf.OnMessageErrorEvent(msg, e)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue