少し長い前置き APIサーバのログでトレーサビリティを向上させるために、リクエストごとに一意なIDを出力するのはよく使われるテクニックです。例えば、Ruby on Railsは標準でログにリクエストIDが出力されるようになっています。かなり大雑把に言ってしまえば、リクエストごとにスレッドが割り当てられる実行環境であれば、スレッド単位でリクエストIDを保持すれば実現できると思います。JavaだとMDCとかを使うのかな? 一方で、Node.jsの場合はシングルスレッドのイベントループでリクエストを処理しますから、前述した方法は使えません。そこで、多くのNode.jsのFrameworkでは、実行コンテキストを関数の引数で引き回しています。私が以前、Koa.jsでAPIサーバを実装したときも、実行コンテキストにloggerインスタンスをセットしてリクエストIDを出力していました。この方法では、ロ
![Async Hooksを使ってリクエストごとに一意なIDをログに出力する | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/5af93ae573666ccc1f5a907a0a410015930466ae/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2018%2F12%2Fnode-icon.jpg)