Я регистрирую requestId в журналах, используя nest js -pino согласно приведенному ниже коду: -
import {
Module,
HttpModule
} from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { APP_FILTER } from '@nestjs/core';
import { LoggerModule } from 'nestjs-pino';
import { CorrelationIdGeneratorService } from './services/helpers/generators/correlation-id-generator.service';
const correlationIdGeneratorFactory = {
providers: [
CorrelationIdGeneratorService,
UniqueIdGeneratorService
],
inject: [CorrelationIdGeneratorService],
useFactory: async (correlationIdGeneratorService: CorrelationIdGeneratorService) => {
return {
pinoHttp: {
genReqId: (request) => {
correlationIdGeneratorService.generateCorrelationId(request);
return correlationIdGeneratorService.getCorrelationId();
},
level: config.get('log.LEVEL'),
useLevelLabels: true,
base: null,
timestamp: () => {
return `, "time":"${new Date().toISOString()}"`;
},
},
};
}
}
@Module({
imports: [
LoggerModule.forRootAsync(correlationIdGeneratorFactory)
],
providers: [
CorrelationIdGeneratorService
],
exports: [
CorrelationIdGeneratorService
]
})
export class SharedModule { }
Теперь проблема заключается в том, что мне нужно передать сгенерированный выше requestId в Функция useFactory () для использования в другом классе. Но, похоже, область действия идентификатора запроса ограничена LoggerModule (nest js -pino)
Вариант использования: - Мне нужно добавить requestId в метаданные загруженного файла, который обрабатывается другим классом.
Любая помощь, приветствуется.