AsyncLocalStorage для микросервисов не работает

#asynchronous #nestjs #pinojs

Вопрос:

Я пытаюсь использовать pino с микросервисами внутри nestjs . Поскольку промежуточные программы не работают для микросервисов, я использую NestInterceptor :

 import {CallHandler, ExecutionContext, Injectable, NestInterceptor} from '@nestjs/common';
import {PinoLogger} from "nestjs-pino";
const storage_1 = require("nestjs-pino/storage");

@Injectable()
export class LoggerInterceptor implements NestInterceptor {

    constructor(private readonly logger: PinoLogger) {
        this.logger.setContext("TEST");
    }

    intercept(context: ExecutionContext, next: CallHandler) {

        return storage_1.storage.run(new storage_1.Store(this.logger), next.handle.bind(this))
    }
}
 

Затем я использую регистратор в своих службах, и он выходит за рамки запроса. Поэтому я не могу assign использовать какие-либо переменные и передавать их во все журналы службы.

Как это правильно реализовать?