feat(logging): ~2-month container rotation, ISO timestamps, level names
Operator asked for bounded container logs (~2 months of history), human- readable timestamps, and clarity on levels. Levels already existed (LOG_LEVEL env → pino, default info; warn+ teed into app_logs, queryable at /setup/logs) — the "level":30 / epoch-ms "time" in docker logs were pino defaults. - server.ts logger: stamp ISO-8601 UTC time (timestamp fn) and level NAMES (formatters.level) so `docker logs` reads human. - log-service.ts pinoDbStream: accept BOTH level encodings (name + numeric) — the label switch would otherwise have silently stopped warn+ persistence into app_logs. New log-service-stream.test.ts pins both encodings, the info-stays-stdout-only rule, and the never-throws fallback. - docker-compose.prod.yml: json-file caps resized from 10m×3 (≈30 MB — days, not months) to ≈2 months by volume: server 20m×30, vision 20m×10, proxy 10m×5. json-file rotates by SIZE; time-based isn't a driver feature — comment says to revisit if `docker logs` holds under ~60 days. - app_logs retention default aligned 30→60 days (LOG_RETENTION_DAYS still overrides). Wiki: app-logs.md gains the container-log store section (rotation, format, LOG_LEVEL knob) + retention update; log.md entry. Suite 282 green. Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
+10
@@ -2272,3 +2272,13 @@ card, unknown SUB- code) still signs the normal anomaly; enrolled credentials ma
|
||||
filter and can never be hidden by it. Works for legacy unprefixed reads too, so the feed cleans up
|
||||
before the vendor-tool visit. 6 new tests; suite 278 green. Also this session: reader channel
|
||||
tagging (clone defense) — see the prior entry.
|
||||
|
||||
## [2026-07-04] update | Logging: 2-month rotation, ISO timestamps, level names
|
||||
|
||||
Operator asked for bounded container logs (~2 months), human-readable timestamps, and clarity on
|
||||
levels. Findings + changes on [[app-logs]]: levels EXISTED (LOG_LEVEL env, pino, warn+ teed to
|
||||
app_logs); the "level":30 numbers and epoch-ms times were pino defaults — the logger now stamps
|
||||
ISO-8601 UTC + level names (pinoDbStream hardened to accept both encodings so the DB tee can't
|
||||
silently break). Rotation: docker json-file caps in docker-compose.prod.yml resized from 10m×3
|
||||
(≈30 MB!) to ≈2 months by volume (server 20m×30, vision 20m×10, proxy 10m×5; json-file rotates by
|
||||
SIZE — time-based isn't a driver feature). app_logs retention default aligned 30→60 days.
|
||||
|
||||
Reference in New Issue
Block a user