project-nomad/admin/config
chriscrosstalk 737e6784f0 fix(logging): also write production logs to stdout for docker visibility (#870)
In production, the logger was configured with a single file target writing to
`/app/storage/logs/admin.log`. Because the production pino transport had no
stdout target, `docker logs nomad_admin` only saw startup banner lines from
non-pino sources — every `logger.info`/`logger.debug` call from controllers,
services, and providers was effectively invisible from outside the container.

That's been silently masking diagnostics for anyone trying to debug a running
NOMAD without exec-ing into the admin container and tailing the log file.
RAG retrieval scores, query rewrites, container preflight decisions, version
check results — all of it was there in `admin.log` but absent from any
external observation point (docker logs, container log aggregators, etc.).

This adds a second production target writing JSON to stdout (fd 1) via the
same pino/file transport. Effect: `docker logs nomad_admin` now shows the
full runtime telemetry, the persisted log file is unchanged (so Debug Info
bundle export keeps working), and external log aggregators that scrape
container stdout now have something to scrape.

Verified on NOMAD8 (v1.32.0-rc.3): post-patch `docker logs --tail 15
nomad_admin` shows the structured `{"level":30,...,"msg":"[VersionCheckProvider]
Checking for stale updateAvailable..."}` lines that previously only existed
in admin.log. File destination still receives writes (size delta confirmed
after an `/api/system/info` hit).

This is the unblock for the AI Quality eval work — without log visibility,
every diagnostic conversation about RAG retrieval and query rewriting is
guesswork.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:32:28 -07:00
..
app.ts feat: initial commit 2025-06-29 15:51:08 -07:00
bodyparser.ts feat(KnowledgeBase): support up to 5 files upload of 100mb each per req 2026-04-03 14:26:50 -07:00
cors.ts feat: initial commit 2025-06-29 15:51:08 -07:00
database.ts fix: cache docker list requests, aiAssistantName fetching, and ensure inertia used properly 2026-04-03 14:26:50 -07:00
hash.ts feat: initial commit 2025-06-29 15:51:08 -07:00
inertia.ts fix: cache docker list requests, aiAssistantName fetching, and ensure inertia used properly 2026-04-03 14:26:50 -07:00
logger.ts fix(logging): also write production logs to stdout for docker visibility (#870) 2026-05-27 15:32:28 -07:00
queue.ts feat: background job overhaul with bullmq 2025-12-06 23:59:01 -08:00
session.ts feat: initial commit 2025-06-29 15:51:08 -07:00
shield.ts feat: initial commit 2025-06-29 15:51:08 -07:00
static.ts feat: background job overhaul with bullmq 2025-12-06 23:59:01 -08:00
transmit.ts fix(ui): reduce SSE reconnect churn and polling overhead on navigation 2026-03-20 11:46:10 -07:00
vite.ts feat: initial commit 2025-06-29 15:51:08 -07:00