NestJs Logger показывает журналы разных форматов ⇐ Javascript
NestJs Logger показывает журналы разных форматов
У меня проблема: одни и те же журналы есть в разных частях моего проекта, и я получаю их в разных форматах.
Модуль приложения
import { LoggerModule } из 'nestjs-pino' ....другой импорт @Модуль({ импорт: [ ConfigModule.forRoot({ envFilePath:process.env.NODE_ENV === 'тест'? '.env.test': '.env.local' }), LoggerModule.forRoot({ пиноhttp: { транспорт: { цель: 'пино-красиво', параметры: { messageKey: 'message' } }, messageKey: 'сообщение', авторегистрация: ложь, сериализаторы: { req: () => не определено, res: () => не определено } } }), CacheModule.register({ redisStore, isGlobal: true }), // ... провайдеры ] }) класс экспорта AppModule {} Main.ts
импортировать { NestFactory } из '@nestjs/core' импортировать { AppModule } из './app.module' Импортировать { Регистратор как CommonLogger, ВЕРСИЯ_НЕЙТРАЛЬНАЯ, Валидационная труба, Тип управления версиями } из '@nestjs/common' импортировать {Logger} из 'nestjs-pino' ... прочий импорт асинхронная функция начальной загрузки () { const logger = новый CommonLogger('Main') const app = await NestFactory.create(AppModule, { буферлоги: правда }) app.useGlobalPipes( новый ValidationPipe({ преобразование: правда, белый список: правда, forbidNonWhitelisted: true }) ) app.useLogger(app.get(Logger)) app.useGlobalFilters(новый CustomExceptionFilter()) app.enableCors({ происхождение: правда, методы: 'GET, HEAD, PUT, PATCH, POST, DELETE, OPTIONS', учетные данные: правда }) app.enableVersioning({ тип: VersioningType.URI, версия по умолчанию: VERSION_NEUTRAL }) константный порт = процесс.env.PORT ?? 3000 ждут app.listen(port, () => { logger.log(`Сервер прослушивает порт ${port}`) } }) } недействительный бутстрап() В другом файле внутри какой-либо службы
async getUser (userId: string): Promise { const docRef = this.collectionRef.doc(userId) this.logger.log('Тест') [17:46:04.712] ИНФОРМАЦИЯ (56753): http://localhost:3000/stores/documentation {"context":"Main"} [17:46:04.712] ИНФОРМАЦИЯ (56753): http://localhost:3000/admins/documentation {"context":"Main"} {"уровень": 30, "время": 1694810766142, "pid": 56753, "имя хоста": "MacBook-Pro-M2", "req": {"id": 1, "метод": "GET", "url":"/admins/v1/users/0h8XRCt7g7TRyG0zVwSsbUlUu1","query":{},"params":{"0":"admins/v1/users/0h8XRCt7g7TRyG0zVwSsbU7PlUu1"},"headers":{"authorization" :"Носитель eyJhbGciOiJSUzI1NiIsImtpZCI6IjE5MGFkMTE4YTk0MGFkYzlmMmY1Mzc2YjM1MjkyZmVkZThjMmQwZWUiLCJ0eXAiOiJKV1QifQ..BFXbAuvHUxysWtCCcyPavr5d-xEfa 54T9bFNkaqYo4B5-189h8Tdlug7ZJkevtS5jvcUAPi9_9v-48eetcvkDKEvku6cXExcuP-CS2CZVQr4WRXw_Z0hVncL8DuekcofQfxU2b4xWDPl0bbF_j1BnXYHIQCHJKtO_JffcD1H8 LSDoEiG_FS1cYL2WtayB3kPMyXwkvAnhV2l3wosrYVznRvFK9B7PIn0NI9CZepE3fizRxFrUkALhtJyqcgNXMUTgvCZJZMXIyf3sY7H_FeBwNkMXFE_WIc8TauvxutS7FySCW2T80MMS1jMrH 5M1NhAk_RzybkxNNgusCmVKl9BzA","user-agent":"PostmanRuntime/7.32.3","accept":"*/*","cache-control":"no- кэш","postman-token":"3358557d-b15b-4ae7-b34e-b3a72005fc25","host":"localhost:3000","accept-encoding":"gzip, deflate, br","connection":" Keep-Alive"},"remoteAddress":"::1","remotePort":62164},"context":"FirestoreUsersRepository","msg":"Test"}` введите здесь описание изображения
Я настраиваю Nest Pinno Logger, и он работает в файле main.ts (вы можете видеть изображение, когда «сервер работает....» выглядит хорошо, но я не понимаю, почему формат меняется, если файл находится за пределами main.ts, журналы выглядят в формате JSON, а не в формате http-запроса.
РЕШЕНО!!!
Я нашел ошибку! По какой-то причине один из моих товарищей по команде поместил LoggerModule в импорт другого модуля, и это сломало первую конфигурацию
У меня проблема: одни и те же журналы есть в разных частях моего проекта, и я получаю их в разных форматах.
Модуль приложения
import { LoggerModule } из 'nestjs-pino' ....другой импорт @Модуль({ импорт: [ ConfigModule.forRoot({ envFilePath:process.env.NODE_ENV === 'тест'? '.env.test': '.env.local' }), LoggerModule.forRoot({ пиноhttp: { транспорт: { цель: 'пино-красиво', параметры: { messageKey: 'message' } }, messageKey: 'сообщение', авторегистрация: ложь, сериализаторы: { req: () => не определено, res: () => не определено } } }), CacheModule.register({ redisStore, isGlobal: true }), // ... провайдеры ] }) класс экспорта AppModule {} Main.ts
импортировать { NestFactory } из '@nestjs/core' импортировать { AppModule } из './app.module' Импортировать { Регистратор как CommonLogger, ВЕРСИЯ_НЕЙТРАЛЬНАЯ, Валидационная труба, Тип управления версиями } из '@nestjs/common' импортировать {Logger} из 'nestjs-pino' ... прочий импорт асинхронная функция начальной загрузки () { const logger = новый CommonLogger('Main') const app = await NestFactory.create(AppModule, { буферлоги: правда }) app.useGlobalPipes( новый ValidationPipe({ преобразование: правда, белый список: правда, forbidNonWhitelisted: true }) ) app.useLogger(app.get(Logger)) app.useGlobalFilters(новый CustomExceptionFilter()) app.enableCors({ происхождение: правда, методы: 'GET, HEAD, PUT, PATCH, POST, DELETE, OPTIONS', учетные данные: правда }) app.enableVersioning({ тип: VersioningType.URI, версия по умолчанию: VERSION_NEUTRAL }) константный порт = процесс.env.PORT ?? 3000 ждут app.listen(port, () => { logger.log(`Сервер прослушивает порт ${port}`) } }) } недействительный бутстрап() В другом файле внутри какой-либо службы
async getUser (userId: string): Promise { const docRef = this.collectionRef.doc(userId) this.logger.log('Тест') [17:46:04.712] ИНФОРМАЦИЯ (56753): http://localhost:3000/stores/documentation {"context":"Main"} [17:46:04.712] ИНФОРМАЦИЯ (56753): http://localhost:3000/admins/documentation {"context":"Main"} {"уровень": 30, "время": 1694810766142, "pid": 56753, "имя хоста": "MacBook-Pro-M2", "req": {"id": 1, "метод": "GET", "url":"/admins/v1/users/0h8XRCt7g7TRyG0zVwSsbUlUu1","query":{},"params":{"0":"admins/v1/users/0h8XRCt7g7TRyG0zVwSsbU7PlUu1"},"headers":{"authorization" :"Носитель eyJhbGciOiJSUzI1NiIsImtpZCI6IjE5MGFkMTE4YTk0MGFkYzlmMmY1Mzc2YjM1MjkyZmVkZThjMmQwZWUiLCJ0eXAiOiJKV1QifQ..BFXbAuvHUxysWtCCcyPavr5d-xEfa 54T9bFNkaqYo4B5-189h8Tdlug7ZJkevtS5jvcUAPi9_9v-48eetcvkDKEvku6cXExcuP-CS2CZVQr4WRXw_Z0hVncL8DuekcofQfxU2b4xWDPl0bbF_j1BnXYHIQCHJKtO_JffcD1H8 LSDoEiG_FS1cYL2WtayB3kPMyXwkvAnhV2l3wosrYVznRvFK9B7PIn0NI9CZepE3fizRxFrUkALhtJyqcgNXMUTgvCZJZMXIyf3sY7H_FeBwNkMXFE_WIc8TauvxutS7FySCW2T80MMS1jMrH 5M1NhAk_RzybkxNNgusCmVKl9BzA","user-agent":"PostmanRuntime/7.32.3","accept":"*/*","cache-control":"no- кэш","postman-token":"3358557d-b15b-4ae7-b34e-b3a72005fc25","host":"localhost:3000","accept-encoding":"gzip, deflate, br","connection":" Keep-Alive"},"remoteAddress":"::1","remotePort":62164},"context":"FirestoreUsersRepository","msg":"Test"}` введите здесь описание изображения
Я настраиваю Nest Pinno Logger, и он работает в файле main.ts (вы можете видеть изображение, когда «сервер работает....» выглядит хорошо, но я не понимаю, почему формат меняется, если файл находится за пределами main.ts, журналы выглядят в формате JSON, а не в формате http-запроса.
РЕШЕНО!!!
Я нашел ошибку! По какой-то причине один из моих товарищей по команде поместил LoggerModule в импорт другого модуля, и это сломало первую конфигурацию
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение