Add structured logging and centralized error handling

- Initialize slog in the serve command with terminal/file support
- Introduce `AppError` with HTTP status for unified service-layer errors
- Replace ad-hoc `api.Error` calls with `api.RespondError`
- Wrap internal errors with `model.NewInternalError` and add reference
  IDs
- Add `RequestID` middleware and switch router from `gin.Default` to
  `gin.New`
This commit is contained in:
2026-07-04 16:24:22 +08:00
parent a78d43b166
commit 1dfccf513a
16 changed files with 281 additions and 134 deletions
+5
View File
@@ -22,6 +22,11 @@ storage:
# Max upload file size in bytes. 0 = unlimited
max_upload_size: 104857600 # 100 MB
log:
level: info # terminal: debug, info, warn, error
file_path: "" # empty = no file logging
file_level: debug # file: debug, info, warn, error
jwt:
secret: change-me-in-production
access_ttl: 15m