refactor(logging): replace all print/log with structured slog logger
Cyrene CI / backend (push) Has been cancelled
Cyrene CI / frontend (push) Has been cancelled

- 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:
Aska committed 2026-08-12 21:31:06 +08:00
1 parent 628d416dcd
commit a58ec7325d
8 files changed
+55 -50

No files matched your search

+25 -24
View File
@@ -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