| ✅ ログ | ✖️ メトリクス | ✖️ トレース |
はじめに
AppModule に HyperDXNestLoggerModule をインポートし、forRoot()
メソッドで設定します。
HDX_LOGGER_MODULE_PROVIDER の注入トークンを使って、プロジェクト
全体で winston インスタンスを注入できるようになります。
Nest のロガーを置き換える (ブートストラップ時を含む)
重要この方法では依存性注入を使わなくなるため、
forRoot と forRootAsync は不要で、使用すべきではありません。メインモジュールから削除してください。HyperDXNestLogger のインスタンスがまだ利用できません。そのため、Nest は内部ロガーにフォールバックします。
これに対する 1 つの解決策は、createLogger 関数を使ってアプリケーションのライフサイクル外でロガーを作成し、それを NestFactory.create に渡すことです。すると Nest は、カスタムロガー (createLogger メソッドが返すものと同じインスタンス) を Logger クラスでラップし、すべての呼び出しをそこに転送します。
main.ts ファイルでロガーを作成します
@nestjs/common の Logger を型ヒントとして指定するだけで、ロガーを簡単に注入できます。