feat(platform): 日志管理 - 统一日志出口并屏蔽查询与 Agent 流式事件日志

新增 internal/logging,slog、标准库 log、GORM 与 Gin 访问日志共用同一 Handler,由 CANVAS_LOG_LEVEL / CANVAS_LOG_FORMAT 控制。info 级别不再输出成功的查询类请求、成功 SQL、message_end 等 Agent 流式事件和常规画布自动保存;4xx/5xx、慢请求、慢 SQL、SQL 失败与 panic 仍会记录,SQL 不内联参数值。
This commit is contained in:
ddcat666
2026-09-30 03:33:34 +08:00
parent b7ff958c2d
commit a0f025aa96
21 changed files with 602 additions and 44 deletions

View File

@@ -6,6 +6,8 @@ import (
"os"
"strings"
"infinite-canvas/backend/internal/logging"
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
@@ -31,13 +33,13 @@ func Open(config Config) (*gorm.DB, error) {
}
dsn = config.DataDir + "/open_ai_canvas.db?_busy_timeout=5000&_journal_mode=WAL&_foreign_keys=on&_synchronous=NORMAL"
}
return gorm.Open(sqlite.Open(dsn), &gorm.Config{})
return gorm.Open(sqlite.Open(dsn), &gorm.Config{Logger: logging.GormLogger()})
case "postgres", "postgresql":
dsn := strings.TrimSpace(config.DSN)
if dsn == "" {
return nil, errors.New("PostgreSQL 模式必须配置 DATABASE_URL")
}
return gorm.Open(postgres.Open(dsn), &gorm.Config{})
return gorm.Open(postgres.Open(dsn), &gorm.Config{Logger: logging.GormLogger()})
default:
return nil, fmt.Errorf("不支持的数据库驱动:%s", driver)
}