Я попытался использовать внутренний 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)