Как использовать службу регистрации nestjs

Я пытался использовать внутренний Logger nestjs (описан в https://docs.nestjs.com/techniques/logger ->, но без описания того, как его использовать)

Но у меня были проблемы (пытался ввести LoggerService и так далее)

Кто-нибудь может объяснить, как это сделать?

Ответы

Ответ 1

Лучшая практика

Лучше, чем статический доступ к 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());

Ответ 2

Вы должны импортировать сначала в свой класс:

import { Logger } from '@nestjs/common';

и тогда вы можете начать с регистрации:

Logger.log('info')
Logger.warn('warning')
Logger.error('something went wrong! ', error)

Ответ 3

Ответ прост. В классе Logger есть статические методы.

например

static log(message: string, context = '', isTimeDiffEnabled = true) 

Использование:

Logger.log('Only a test');