Nestjsの内部Logger
を使用しようとしました( https://docs.nestjs.com/techniques/logger ->で説明されていますが、使用方法の説明はありません)
しかし、問題が発生しました(LoggerService
などを挿入しようとしました)
誰もこれを行う方法を説明できますか?
Logger
に静的にアクセスするよりも、クラスのインスタンスを作成することをお勧めします。
@Controller()
export class AppController {
private readonly logger = new Logger(AppController.name);
@Get()
async get() {
this.logger.log('Getting stuff');
}
}
1)クラス名(またはその他のもの)がこのクラスのすべてのログメッセージの一部になるように、new Logger(AppController.name)
などのコンストラクターでコンテキストを提供できます。
2)ある時点でデフォルトのLoggerService
を拡張または置換する場合、新しいロガーを設定する以外にアプリケーションコードを変更する必要はありません。新しいロガーが自動的に使用されます。静的にアクセスすると、デフォルトの実装が引き続き使用されます。
const app = await NestFactory.create(AppModule, {logger: new MyLogger()});
3)テストでLogger
をモックできます:
module.useLogger(new NoOpLogger());
最初にクラスにインポートする必要があります。
import { Logger } from '@nestjs/common';
そして、あなたはロギングから始めることができます:
Logger.log('info')
Logger.warn('warning')
Logger.error('something went wrong! ', error)
答えは簡単です。 Loggerクラスには静的メソッドがあります。
例えば.
static log(message: string, context = '', isTimeDiffEnabled = true)
使用法:
Logger.log('Only a test');