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

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

Но у меня были проблемы (пытались ввести LoggerService и т. Д.),

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

ТИА

Всего 3 ответа


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

например

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

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

Logger.log('Only a test');

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

Лучше, чем доступ к Logger статически - создать экземпляр для вашего класса:

@Controller()
export class AppController {
  private readonly logger = new Logger(AppController.name);

  @Get()
  async get() {
    this.logger('Getting stuff');
  }
}

Почему это лучше?

1) Вы можете предоставить контекст в конструкторе, таком как new Logger(AppController.name) чтобы имя класса (или что-то еще) было частью всех сообщений журнала в этом классе.

2) Если вы в какой-то момент хотите расширить или заменить стандартный LoggerService , вам не нужно изменять какой-либо код приложения, кроме установки нового регистратора. Ваш новый регистратор будет автоматически использоваться. Если вы получите доступ к нему статически, он продолжит выполнение по умолчанию.

const app = await NestFactory.create(AppModule, {logger: new MyLogger()});

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

import { Logger } from '@nestjs/common'

и затем вы можете начать с ведения журнала:

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

Есть идеи?

10000