fix: 在 MsgInHandler 和 NewWebSocketClient 中增强错误处理,添加详细的日志记录以捕获异常信息和堆栈跟踪

This commit is contained in:
lixiangwuxian 2025-03-29 14:58:44 +08:00
parent 8d7b0cd266
commit fd34e67142
2 changed files with 16 additions and 2 deletions

View File

@ -1,9 +1,12 @@
package handler
import (
"fmt"
"log"
"regexp"
"runtime/debug"
"strings"
"time"
"git.lxtend.com/qqbot/auth"
"git.lxtend.com/qqbot/constants"
@ -88,7 +91,10 @@ func RegisterRegexHandler(trigger string, handler model.Handler, level constants
func MsgInHandler(msg model.Message) (reply model.Reply) {
defer func() {
if r := recover(); r != nil {
log.Default().Printf("Recovered in MsgInHandler: %v", r)
stack := debug.Stack()
errMsg := fmt.Sprintf("[%s] Panic recovered:\nError: %v\nStack Trace:\n%s\n",
time.Now().Format("2006-01-02 15:04:05"), r, stack)
log.Print(errMsg)
}
}()
if msg.RawMsg != "" {

View File

@ -2,9 +2,12 @@ package wsclient
import (
"encoding/json"
"fmt"
"log"
"net/url"
"runtime/debug"
"sync"
"time"
"git.lxtend.com/qqbot/action"
"git.lxtend.com/qqbot/constants"
@ -36,7 +39,12 @@ func NewWebSocketClient(scheme, host, path string) (*WebSocketClient, error) {
}
defer func() {
if r := recover(); r != nil {
log.Print("Recovered in NewWebSocketClient:", r)
stack := debug.Stack()
errMsg := fmt.Sprintf("[%s] Panic recovered:\nError: %v\nStack Trace:\n%s\n",
time.Now().Format("2006-01-02 15:04:05"), r, stack)
// 写入日志文件
log.Print(errMsg)
go client.receiveMessages()
}
}()