Hacker News new | ask | show | jobs
by janci 1287 days ago
Not so obvious. How to implement it without passing request id to all the functions, when they are unrelated to request/http ? Especially in languages without thread-locals such as javascript?
4 comments

Many frameworks solve this with logger context. Add the properties you want to the logging context and all future logs in that context will have that property.

One simple example - Serilog enrichment https://github.com/serilog/serilog/wiki/Enrichment

This does however assume your entire application uses the same logger. But this is generally a requirement in services that require tracing like this.

Nodejs now has async local storage built in, which makes this fairly easy.
You can stick it in a middleware which wraps the request lifecycle.