rts-sim-testing-service/init.go
2023-07-28 14:45:35 +08:00

48 lines
1.0 KiB
Go

package main
import (
"fmt"
"net/http"
"time"
"go.uber.org/zap"
"joylink.club/bj-rtsts-server/db/dbquery"
ginzap "github.com/gin-contrib/zap"
"github.com/gin-gonic/gin"
"joylink.club/bj-rtsts-server/config"
"joylink.club/bj-rtsts-server/db"
"joylink.club/bj-rtsts-server/logger"
)
func InitServer() *gin.Engine {
config.LoadConfig()
fmt.Println("数据源配置为:", config.Config.Datasource.Dsn)
err := logger.InitLogger()
if err != nil {
panic(err)
}
err = db.InitDb()
if err != nil {
panic(err)
}
dbquery.SetDefault(db.DB)
engine := gin.New()
engine.Use(ginzap.Ginzap(zap.L(), time.DateTime, false))
// gin panic 异常处理,默认处理为 engine.Use(ginzap.RecoveryWithZap(zap.L(), true))
engine.Use(ginzap.CustomRecoveryWithZap(zap.L(), true, func(c *gin.Context, e interface{}) {
switch e.(type) {
case error:
err := e.(error)
c.JSON(http.StatusInternalServerError, err.Error())
default:
c.JSON(http.StatusInternalServerError, e)
}
c.Writer.WriteHeaderNow()
c.Abort()
}))
return engine
}