winston ロギング フレームワークとログ レベルに基づくロギングを使用していますが、バグを追跡するのが困難になっています。そこで、ユーザーごとにログオンすることにしましたが、ここで問題が発生しました。
私は何を達成したいですか?
- すべてのユーザーのログ ファイルが 1 時間ごとに生成されます。(このスレッドでは毎時の制約をスキップできます)、すべてのユーザーは一意の識別子「uid」を持っています。
私は何を持っていますか?
- ここで使用されているアーキテクチャに従っています ' https://github.com/agendor/sample-hapi-rest-api '。いくつかの追加の lib モジュールも存在します。
- 現在、私は winston ライブラリを使用しています (ただし、必要に応じてこれを置き換える余裕があります)。
流れの簡単な紹介
- 現在、ハンドラー関数でのみ要求オブジェクトにアクセスできますが、DAO、ライブラリ関数でもイベントをログに記録したいです (ユーザーごとに)。「Uid」は、認証ミドルウェアのリクエストに uid を入れると、リクエスト オブジェクトのハンドラ関数で使用できます。
私の解決策(エレガントではありません)
- 要求オブジェクト (または uid のみ) をすべての関数に渡し、(winston を使用して) イベントをログに記録します。カスタム トランスポートは、ログをどこに (uid に基づいて、どのファイルに) 配置するかを決定します。確かに、これはエレガントな方法ではありません。イベントをログに記録するには、すべての関数に uid パラメータが必要です。これは悪いようです。
私はあなたから何をしたいですか?
- スケーラブルでもある、より優れたエレガントなアプローチ。