feat: add Docker support and logging enhancements

- Introduced Dockerfile and .dockerignore for containerization of the backend service.
- Added logging configuration with support for daily rolling logs and customizable log levels.
- Enhanced the server to utilize structured logging with zap, including detailed request and error logging.
- Updated configuration to include logging parameters and proxy settings.
- Implemented tests for logging configuration and proxy settings.
This commit is contained in:
2026-02-15 18:24:48 +08:00
parent 3284ce07c7
commit eab464060b
9 changed files with 870 additions and 27 deletions

View File

@@ -72,6 +72,18 @@ CONFIG_FILE=./config.local.json go run ./cmd/server
- `NACOS_IP`:实例注册 IP建议注入 Pod/主机内网 IP
- `NACOS_PORT`:实例注册端口,默认取 `PORT`
- `NACOS_EPHEMERAL`:是否临时实例,默认 `true`
- `APP_NAME`:日志应用名,默认 `lsp-gateway`
- `APP_ENV`:运行环境,默认 `dev`
- `LOG_PATH`:日志根目录,默认 `./logs/${APP_NAME}`
- `LOG_LEVEL`:日志级别(`debug/info/warn/error`),默认 `info`
- `LOG_MAX_SIZE_MB`单文件滚动阈值MB默认 `100`
- `LOG_MAX_BACKUPS`:滚动文件保留数量,默认 `31`
- `LOG_MAX_AGE_DAYS`:日志保留天数,默认 `31`
- `LOG_COMPRESS`:滚动文件是否压缩,默认 `true`
- `LOG_CONSOLE_ENABLED`:是否输出控制台,默认 `true`
- `TRUSTED_PROXIES`:受信代理列表(逗号分隔 IP/CIDR默认空不信任代理头
- `REMOTE_IP_HEADERS`:客户端 IP 头列表(逗号分隔),默认 `X-Forwarded-For,X-Real-IP`
- `FORWARDED_BY_CLIENT_IP`:是否从代理头解析客户端 IP默认 `true`
语言服务器命令(可替换为企业内部镜像/封装):
- `GO_LSP_COMMAND``GO_LSP_ARGS`
@@ -94,6 +106,14 @@ NACOS_IP=10.0.2.15
NACOS_PORT=8080
```
日志输出说明(参考 Logback
- 访问日志、业务日志都会写入文件和控制台(可关)。
- 日志目录结构:`logs/<app>/<yyyy-MM>/<yyyy-MM-dd>/`
- `info.log`:记录 `INFO/WARN`
- `error.log`:记录 `ERROR` 及以上
- 请求链路字段:`traceId`(来自 `X-Request-Id`/`X-Trace-Id`
- 如果服务部署在网关后,请务必配置 `TRUSTED_PROXIES` 为网关出口网段,否则会记录到网关 IP。
## 健康检查
- `GET /health`