diff --git a/main.go b/main.go index 91ab65b..3675d62 100644 --- a/main.go +++ b/main.go @@ -104,7 +104,15 @@ func main() { // Initialize HTTP server server := gin.New() - server.Use(gin.Recovery()) + server.Use(gin.CustomRecovery(func(c *gin.Context, err any) { + common.SysError(fmt.Sprintf("panic detected: %v", err)) + c.JSON(http.StatusInternalServerError, gin.H{ + "error": gin.H{ + "message": fmt.Sprintf("Panic detected, error: %v. Please submit a issue here: https://github.com/Calcium-Ion/new-api", err), + "type": "new_api_panic", + }, + }) + })) // This will cause SSE not to work!!! //server.Use(gzip.Gzip(gzip.DefaultCompression)) server.Use(middleware.RequestId()) diff --git a/middleware/recover.go b/middleware/recover.go index 8338a51..51fc719 100644 --- a/middleware/recover.go +++ b/middleware/recover.go @@ -16,8 +16,8 @@ func RelayPanicRecover() gin.HandlerFunc { common.SysError(fmt.Sprintf("stacktrace from panic: %s", string(debug.Stack()))) c.JSON(http.StatusInternalServerError, gin.H{ "error": gin.H{ - "message": fmt.Sprintf("Panic detected, error: %v. Please submit a issue here: https://github.com/songquanpeng/one-api", err), - "type": "one_api_panic", + "message": fmt.Sprintf("Panic detected, error: %v. Please submit a issue here: https://github.com/Calcium-Ion/new-api", err), + "type": "new_api_panic", }, }) c.Abort()