ce76046a29
- consolidate API ownership and remove dead vendor code - add Stripe billing, learning paths, and public CV hardening - add migration, recovery, security, audit, and browser gates
56 lines
900 B
Markdown
56 lines
900 B
Markdown
# Logging
|
|
|
|
## Purpose
|
|
|
|
Make debugging possible.
|
|
|
|
---
|
|
|
|
# Log Levels
|
|
|
|
Use:
|
|
|
|
Trace.
|
|
|
|
Debug.
|
|
|
|
Information.
|
|
|
|
Warning.
|
|
|
|
Error.
|
|
|
|
Critical.
|
|
|
|
---
|
|
|
|
# Do Not Log
|
|
|
|
Never log:
|
|
|
|
- Passwords.
|
|
- Tokens.
|
|
- API keys.
|
|
- Private documents.
|
|
|
|
---
|
|
|
|
# Useful Logs
|
|
|
|
Include:
|
|
|
|
- Operation.
|
|
- User context where safe.
|
|
- Error details.
|
|
- Correlation IDs.
|
|
|
|
## Runtime output
|
|
|
|
Production emits structured JSON to stdout for Docker collection. Development keeps readable console
|
|
and debug output. The request middleware records method, path, status, elapsed milliseconds, trace ID,
|
|
and authenticated subject when present. Unhandled errors use the same trace ID in their Problem Details
|
|
response so an operator can correlate the client report with `docker logs`.
|
|
|
|
Compose retains three 10 MB local log files per service. There is no external sink; add Seq/OTLP only
|
|
when single-node Docker logs stop being operationally sufficient.
|