JSON logs, levels, and async transport performance.
01
01
Understand the problem
nodejsloggingpinoobservability
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
Pino with per-request context
import pino from 'pino';
const logger = pino({ level: process.env.LOG_LEVEL ?? 'info', redact: ['req.headers.authorization'] });
app.use((req, res, next) => {
req.log = logger.child({ reqId: crypto.randomUUID(), path: req.path });
next();
});
app.get('/x', (req, res) => { req.log.info({ userId: 42 }, 'handled'); res.end(); });
// → {"level":"info","reqId":"...","path":"/x","userId":42,"msg":"handled"}05
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.