[Nest Js -Pino] RequestId для использования во всем коде - PullRequest
1 голос
/ 20 января 2020

Я регистрирую 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 в метаданные загруженного файла, который обрабатывается другим классом.

Любая помощь, приветствуется.

...