refactor(logging): replace all print/log with structured slog logger
- main.go: 30+ log.Printf → logger.Infof - plugin/registry: 12 log.Printf → logger.Infof - db/db.go, ws/hub.go: log → logger - platform-bridge: fmt.Printf/println → logger.Info - Logs now: time=... level=INFO msg=... - 16 packages pass, vet clean
This commit is contained in:
1 parent
628d416dcd
commit
a58ec7325d
8 files changed
+55
-50
No files matched your search
+25
-24
@@ -6,6 +6,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/logger"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
@@ -52,15 +53,15 @@ import (
|
||||
|
||||
func main() {
|
||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||
log.Println("🧠 Cyrene v2 启动中...")
|
||||
logger.Info("🧠 Cyrene v2 启动中...")
|
||||
|
||||
// === 1. Platform & Config ===
|
||||
plat := platform.Detect()
|
||||
log.Printf("[platform] %s", plat.Summary())
|
||||
logger.Infof("[platform] %s", plat.Summary())
|
||||
|
||||
cfg, err := config.Load()
|
||||
if err != nil {
|
||||
log.Printf("[config] .env load failed: %v", err)
|
||||
logger.Infof("[config] .env load failed: %v", err)
|
||||
}
|
||||
cfg.ValidateOrFatal()
|
||||
cfg.LogSanitized()
|
||||
@@ -74,7 +75,7 @@ func main() {
|
||||
MaxOpenConns: 25, MaxIdleConns: 5,
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("[db] warning: %v (running without persistence)", err)
|
||||
logger.Infof("[db] warning: %v (running without persistence)", err)
|
||||
} else {
|
||||
defer database.Close()
|
||||
db.RunMigration(context.Background(), database, "memories", db.SplitSQL(memory.CreateTableSQL()))
|
||||
@@ -82,7 +83,7 @@ func main() {
|
||||
|
||||
// === 3. NATS (in-process) ===
|
||||
natsConn := nats.NewInProcess()
|
||||
log.Printf("[nats] ready")
|
||||
logger.Infof("[nats] ready")
|
||||
_ = natsConn
|
||||
|
||||
// === 4. Plugin Registry ===
|
||||
@@ -114,7 +115,7 @@ func main() {
|
||||
reg.Register(websearch.New(cfg.SearXNGURL), pluginCfg)
|
||||
}
|
||||
|
||||
log.Printf("[plugin] loaded %d plugins: %v", reg.Count(), reg.ListNames())
|
||||
logger.Infof("[plugin] loaded %d plugins: %v", reg.Count(), reg.ListNames())
|
||||
|
||||
// === 5. Voice Service ===
|
||||
voiceSvc := voicesvc.New(voicesvc.Config{
|
||||
@@ -122,24 +123,24 @@ func main() {
|
||||
TTSProviders: []string{cfg.TTSProvider},
|
||||
DashScopeKey: cfg.DashScopeAPIKey,
|
||||
})
|
||||
log.Printf("[voice] ready")
|
||||
logger.Infof("[voice] ready")
|
||||
|
||||
// === 6. Memory Service ===
|
||||
var memSvc *memory.Service
|
||||
if database != nil {
|
||||
memRepo := memory.NewRepository(database)
|
||||
memSvc = memory.NewService(memRepo)
|
||||
log.Printf("[memory] connected")
|
||||
logger.Infof("[memory] connected")
|
||||
} else {
|
||||
log.Printf("[memory] disabled (no database)")
|
||||
logger.Infof("[memory] disabled (no database)")
|
||||
}
|
||||
|
||||
// === 7. AI-Core: Persona ===
|
||||
personaLoader, err := persona.NewLoader(cfg.PersonaDir)
|
||||
if err != nil {
|
||||
log.Printf("[persona] load error: %v (using builtin)", err)
|
||||
logger.Infof("[persona] load error: %v (using builtin)", err)
|
||||
}
|
||||
log.Printf("[persona] loaded %d persona(s): %v", personaLoader.Count(), personaLoader.List())
|
||||
logger.Infof("[persona] loaded %d persona(s): %v", personaLoader.Count(), personaLoader.List())
|
||||
personaInjector := persona.NewInjector(personaLoader.Default())
|
||||
|
||||
// === 8. AI-Core: LLM Adapter ===
|
||||
@@ -154,11 +155,11 @@ func main() {
|
||||
llmSelector.DefaultAdapter().SetCallLogger(func(c llm.CallRecord) {
|
||||
llmCallLogger.Record(c)
|
||||
})
|
||||
log.Printf("[llm] adapter ready (model=%s)", cfg.LLMModel)
|
||||
logger.Infof("[llm] adapter ready (model=%s)", cfg.LLMModel)
|
||||
|
||||
// === 9. AI-Core: Context Store ===
|
||||
ctxStore := aiCoreCtx.NewStore(4000, 50)
|
||||
log.Printf("[context] sliding window ready (4000 tokens, 50 turns)")
|
||||
logger.Infof("[context] sliding window ready (4000 tokens, 50 turns)")
|
||||
|
||||
// === 10. AI-Core: Sub-session Manager ===
|
||||
subMgr := subsession.NewManager(
|
||||
@@ -182,7 +183,7 @@ func main() {
|
||||
},
|
||||
},
|
||||
)
|
||||
log.Printf("[subsession] 4 providers ready")
|
||||
logger.Infof("[subsession] 4 providers ready")
|
||||
|
||||
// === 11. AI-Core: Orchestrator ===
|
||||
semanticCache := llm.NewSemanticCache()
|
||||
@@ -192,7 +193,7 @@ func main() {
|
||||
memExtractor := memory.NewExtractor(memSvc, &memory.LLMAdapterBridge{Adapter: memAdapter})
|
||||
orch.SetMemoryExtractor(memExtractor)
|
||||
}
|
||||
log.Printf("[orchestrator] pipeline ready")
|
||||
logger.Infof("[orchestrator] pipeline ready")
|
||||
|
||||
// === 11.5 Platform Bridge ===
|
||||
bridgeCfgPath := "configs/bridge.json"
|
||||
@@ -209,7 +210,7 @@ func main() {
|
||||
loadAdaptersFromConfig(bridgeRouter, &bridge.BridgeConfig{Adapters: bridgeStore.GetAdapters()}, orch)
|
||||
bridgeRouter.StartAll()
|
||||
|
||||
log.Printf("[bridge] config store ready (path=%s, %d adapters)", bridgeCfgPath, bridgeStore.Count())
|
||||
logger.Infof("[bridge] config store ready (path=%s, %d adapters)", bridgeCfgPath, bridgeStore.Count())
|
||||
|
||||
// === 12. Gateway ===
|
||||
userStore := api.NewMemUserStore(cfg.AdminUsername, cfg.AdminPassword)
|
||||
@@ -256,7 +257,7 @@ func main() {
|
||||
// === 13. Start ===
|
||||
// Register restart handler — forks a new process and exits
|
||||
api.RestartFunc = func() {
|
||||
log.Printf("[gateway] restarting...")
|
||||
logger.Infof("[gateway] restarting...")
|
||||
reg.Shutdown()
|
||||
srv.Close()
|
||||
// Re-exec self with same args and env
|
||||
@@ -266,17 +267,17 @@ func main() {
|
||||
Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("[gateway] restart failed: %v", err)
|
||||
logger.Fatalf("[gateway] restart failed: %v", err)
|
||||
}
|
||||
log.Printf("[gateway] new process PID=%d, exiting...", proc.Pid)
|
||||
logger.Infof("[gateway] new process PID=%d, exiting...", proc.Pid)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
go func() {
|
||||
log.Printf("[gateway] listening on %s", addr)
|
||||
log.Printf("[gateway] plugins=%d tools=%d", reg.Count(), len(reg.GetAllToolDefinitions()))
|
||||
logger.Infof("[gateway] listening on %s", addr)
|
||||
logger.Infof("[gateway] plugins=%d tools=%d", reg.Count(), len(reg.GetAllToolDefinitions()))
|
||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
log.Fatalf("[gateway] %v", err)
|
||||
logger.Fatalf("[gateway] %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -284,10 +285,10 @@ func main() {
|
||||
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-quit
|
||||
|
||||
log.Println("[gateway] shutting down...")
|
||||
logger.Info("[gateway] shutting down...")
|
||||
reg.Shutdown()
|
||||
srv.Close()
|
||||
log.Println("Cyrene v2 已安全退出")
|
||||
logger.Info("Cyrene v2 已安全退出")
|
||||
|
||||
_ = voiceSvc
|
||||
_ = memSvc
|
||||
|
||||
Reference in new issue
Block a user