From 98d5e9e11732e3d86a1584ac53a2c807fa435f29 Mon Sep 17 00:00:00 2001 From: kevin Date: Fri, 19 Jun 2026 15:43:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E6=96=B0=E5=A2=9E=20web.console?= =?UTF-8?q?=5Flog=20=E5=BC=80=E5=85=B3=EF=BC=9Bdata=5Fdir=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=94=B9=E4=B8=BA=20srv/mesh=5Fmqtt=5Fgo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - WebConfig 增加 console_log 字段,关闭后 gin 不再向控制台打印 HTTP 访问日志(保留 Recovery) - 默认值 true;旧配置加载时自动补齐并写回 - defaultDataDirForGOOS 默认目录由 var/lib/mesh_mqtt_go 调整为 srv/mesh_mqtt_go,与 install.sh 中 DATA_DIR=/srv/${SERVICE_NAME} 保持一致 - install.sh 模板同步加入 console_log: true Co-Authored-By: Claude --- install.sh | 1 + internal/config/config.go | 12 ++++++++++-- internal/web/web.go | 6 +++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 2edb0d8..c2911cf 100644 --- a/install.sh +++ b/install.sh @@ -79,6 +79,7 @@ web: port: 8080 socket_path: ${SOCKET_PATH} static_dir: ${INSTALL_DIR}/dist + console_log: true admin: username: admin password: admin diff --git a/internal/config/config.go b/internal/config/config.go index e13df42..c0e6027 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -66,6 +66,7 @@ type WebConfig struct { SocketPath string `yaml:"socket_path"` StaticDir string `yaml:"static_dir"` MapTileCacheDir string `yaml:"map_tile_cache_dir"` + ConsoleLog bool `yaml:"console_log"` Admin WebAdminConfig `yaml:"admin"` } @@ -132,6 +133,7 @@ type rawWebConfig struct { SocketPath *string `yaml:"socket_path"` StaticDir *string `yaml:"static_dir"` MapTileCacheDir *string `yaml:"map_tile_cache_dir"` + ConsoleLog *bool `yaml:"console_log"` Admin *rawWebAdminConfig `yaml:"admin"` } @@ -171,6 +173,7 @@ func Default() *Config { SocketPath: defaultWebSocketPath(), StaticDir: "./dist", MapTileCacheDir: defaultMapTileCacheDir(), + ConsoleLog: true, Admin: WebAdminConfig{ Username: "admin", Password: "admin", @@ -264,9 +267,9 @@ func defaultDataDir() string { func defaultDataDirForGOOS(goos string) string { if useRelativeDefaultPath(goos) { - return filepath.Join(".", "win", "var", "lib", "mesh_mqtt_go") + return filepath.Join(".", "win", "srv", "mesh_mqtt_go") } - return filepath.Join(string(filepath.Separator), "var", "lib", "mesh_mqtt_go") + return filepath.Join(string(filepath.Separator), "srv", "mesh_mqtt_go") } // Load 加载配置文件;文件不存在时生成,字段缺失时自动补全并写回。 @@ -428,6 +431,11 @@ func normalize(raw rawConfig) (*Config, bool) { } else { cfg.Web.MapTileCacheDir = *raw.Web.MapTileCacheDir } + if raw.Web.ConsoleLog == nil { + changed = true + } else { + cfg.Web.ConsoleLog = *raw.Web.ConsoleLog + } if raw.Web.Admin == nil { changed = true } else { diff --git a/internal/web/web.go b/internal/web/web.go index 50272ea..6a6a8fa 100644 --- a/internal/web/web.go +++ b/internal/web/web.go @@ -62,7 +62,11 @@ func ServeUnixSocket(server *http.Server, socketPath string) error { func NewRouter(cfg configpkg.WebConfig, store *storepkg.Store, sessions *auth.Manager, mqttStatus MQTTStatusProvider, blocking *blockingpkg.Cache, forwarder mqttforwardpkg.Reloader, settings *rspkg.Cache, botSender botpkg.TextSender) *gin.Engine { r := gin.New() - r.Use(gin.Logger(), gin.Recovery()) + if cfg.ConsoleLog { + r.Use(gin.Logger(), gin.Recovery()) + } else { + r.Use(gin.Recovery()) + } api := r.Group("/api") registerAPIRoutes(api, store, cfg.MapTileCacheDir) registerAdminRoutes(api.Group("/admin"), store, sessions, mqttStatus, blocking, forwarder, settings, botSender)