qixiaoning
2025-10-29 9b17a8dcbc1f94eb117a37b3b24ca9dae0d2d588
api-gateway/main.go
@@ -1,14 +1,17 @@
package main
import (
   "context"
   "encoding/json"
   "flag"
   "basic.com/valib/logc.git"
   "basic.com/valib/logger.git"
   "basic.com/valib/version.git"
   "context"
   "flag"
   vaversion "basic.com/valib/version.git"
   "github.com/gin-gonic/gin"
//   "net/http"
//   _ "net/http/pprof"
   //   "net/http"
   //   _ "net/http/pprof"
   "os"
   "os/signal"
   "syscall"
@@ -19,21 +22,26 @@
   "vamicro/api-gateway/traces"
   "vamicro/config"
   "vamicro/extend/util"
   bh "basic.com/valib/c_bhomebus.git/api/bhsgo"
   bhmsg "basic.com/valib/c_bhomebus.git/proto/source/bhome_msg"
)
var (
   procName = service.ProcName
   env = flag.String("e", "pro", "")
   procName         = service.ProcName
   env              = flag.String("e", "pro", "")
   VaSystemLogTopic = "VaSystemLogSaveTopic"
)
//func init() {
// func init() {
func sinit() {
   flag.Parse()
   //控制台打印版本
   vaversion.Usage()
   config.Init(*env)
   // 日志初始化
   var logFile = config.LogConf.Path + "vamicro-"+procName+".log"
   var logFile = config.LogConf.Path + "vamicro-" + procName + ".log"
   logger.InitLogger(logFile, config.LogConf.Level, config.LogConf.MaxSize, config.LogConf.MaxBackups, config.LogConf.MaxAge)
   logger.Info("log init success !")
}
@@ -44,11 +52,22 @@
   //   logger.Info(http.ListenAndServe("0.0.0.0:6077", nil))
   //}()
    sinit()
   sinit()
   models.Init()
   defer models.CloseDB()
   ctx, cancel := context.WithCancel(context.Background())
   defer func() {
      logInfo2 := logc.VaSystemLog{
         HostName: "localhost",
         ProcName: "smartai",
         ProcID:   os.Getpid(),
         Level:    logc.LevelInfo,
         Info:     "smartai停止",
      }
      LogDecoderInfo(ctx, logInfo2)
   }()
   q := make(chan os.Signal, 1)
   signal.Notify(q, os.Interrupt, os.Kill, syscall.SIGTERM)
@@ -62,6 +81,18 @@
      })
      auth.Oauth2Init()
      util.AuthCheck(ctx) //授权检查
      //记录日志
      logInfo := logc.VaSystemLog{
         HostName: "localhost",
         ProcName: "smartai",
         ProcID:   os.Getpid(),
         Level:    logc.LevelInfo,
         Info:     "smartai启动",
      }
      LogDecoderInfo(ctx, logInfo)
      go func() {
         r := gin.Default()
         r.Use(auth.AuthHandler())
@@ -81,3 +112,22 @@
      logger.Debug("client is nil")
   }
}
// 保存系统日志
func LogDecoderInfo(ctx context.Context, logInfo logc.VaSystemLog) {
   logger.Debug("start LogDecoderInfo")
   go func() {
      logData, _ := json.Marshal(logInfo)
      pub := bhmsg.MsgPublish{
         Topic: []byte(VaSystemLogTopic),
         Data:  logData,
      }
      if !bh.Publish(&pub, 1000) {
         logger.Error("LogDecoderInfo %s failed\n", VaSystemLogTopic)
      }
   }()
}