refactor(config): console_log 提到顶层并细分 web/mqtt/llm/sql;data_dir 归入 ai

- 新增顶层 ConsoleLogConfig{Web, MQTT, LLM, SQL},默认全 true,方便后续按模块扩展
- WebConfig.ConsoleLog 移除;NewRouter/NewHTTPServer 改为显式接 consoleLog 参数
- AIConfig 增加 DataDir,原 Config.DataDir(仅 ai 模块使用)下沉到 ai.data_dir
- OpenStore(cfg, consoleLog) 通过 console_log.sql 控制 gorm logger 级别(Warn/Silent)
- gorm logger 始终设 IgnoreRecordNotFoundError=true,修掉 GetBoolRuntimeSetting
  正常缺省路径仍刷屏 'record not found' 的噪声
- 同步更新 install.sh 模板、win/etc 默认 yaml 与所有测试调用点

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-19 16:13:18 +08:00
co-authored by Claude
parent 98d5e9e117
commit 52da224a19
8 changed files with 87 additions and 31 deletions
+15 -2
View File
@@ -4,6 +4,7 @@ import (
"encoding/json"
"errors"
"fmt"
"log"
"os"
"path/filepath"
"time"
@@ -11,6 +12,7 @@ import (
"github.com/glebarez/sqlite"
"gorm.io/driver/mysql"
"gorm.io/gorm"
gormlogger "gorm.io/gorm/logger"
"meshtastic_mqtt_server/internal/config"
)
@@ -571,7 +573,7 @@ func (TracerouteRecord) TableName() string {
return "traceroute"
}
func OpenStore(cfg config.DatabaseConfig) (*Store, error) {
func OpenStore(cfg config.DatabaseConfig, consoleLog bool) (*Store, error) {
var dialector gorm.Dialector
switch cfg.Driver {
case config.DriverSQLite:
@@ -585,7 +587,18 @@ func OpenStore(cfg config.DatabaseConfig) (*Store, error) {
return nil, fmt.Errorf("unsupported database driver %q", cfg.Driver)
}
db, err := gorm.Open(dialector, &gorm.Config{})
logLevel := gormlogger.Warn
if !consoleLog {
logLevel = gormlogger.Silent
}
db, err := gorm.Open(dialector, &gorm.Config{
Logger: gormlogger.New(log.New(os.Stderr, "\r\n", log.LstdFlags), gormlogger.Config{
SlowThreshold: 200 * time.Millisecond,
LogLevel: logLevel,
IgnoreRecordNotFoundError: true,
Colorful: false,
}),
})
if err != nil {
return nil, fmt.Errorf("open %s database: %w", cfg.Driver, err)
}
+1 -1
View File
@@ -978,7 +978,7 @@ func openTestStore(t *testing.T) *Store {
st, err := OpenStore(config.DatabaseConfig{
Driver: config.DriverSQLite,
SQLite: config.SQLiteConfig{Path: filepath.Join(t.TempDir(), "mesh_mqtt_go.db")},
})
}, false)
if err != nil {
t.Fatalf("OpenStore() error = %v", err)
}
+1 -1
View File
@@ -19,7 +19,7 @@ func OpenStore(t *testing.T) *store.Store {
st, err := store.OpenStore(config.DatabaseConfig{
Driver: config.DriverSQLite,
SQLite: config.SQLiteConfig{Path: filepath.Join(t.TempDir(), "mesh_mqtt_go.db")},
})
}, false)
if err != nil {
t.Fatalf("OpenStore() error = %v", err)
}