1

winston ロギング フレームワークとログ レベルに基づくロギングを使用していますが、バグを追跡するのが困難になっています。そこで、ユーザーごとにログオンすることにしましたが、ここで問題が発生しました。

私は何を達成したいですか?

  • すべてのユーザーのログ ファイルが 1 時間ごとに生成されます。(このスレッドでは毎時の制約をスキップできます)、すべてのユーザーは一意の識別子「uid」を持っています。

私は何を持っていますか?

  • ここで使用されているアーキテクチャに従っています ' https://github.com/agendor/sample-hapi-rest-api '。いくつかの追加の lib モジュールも存在します。
  • 現在、私は winston ライブラリを使用しています (ただし、必要に応じてこれを置き換える余裕があります)。

流れの簡単な紹介

  • 現在、ハンドラー関数でのみ要求オブジェクトにアクセスできますが、DAO、ライブラリ関数でもイベントをログに記録したいです (ユーザーごとに)。「Uid」は、認証ミドルウェアのリクエストに uid を入れると、リクエスト オブジェクトのハンドラ関数で使用できます。

私の解決策(エレガントではありません)

  • 要求オブジェクト (または uid のみ) をすべての関数に渡し、(winston を使用して) イベントをログに記録します。カスタム トランスポートは、ログをどこに (uid に基づいて、どのファイルに) 配置するかを決定します。確かに、これはエレガントな方法ではありません。イベントをログに記録するには、すべての関数に uid パラメータが必要です。これは悪いようです。

私はあなたから何をしたいですか?

  • スケーラブルでもある、より優れたエレガントなアプローチ。

関連記事:https ://github.com/hapijs/discuss/issues/51

4

1 に答える 1