Добавить MDC в Nodejs с log4j без внешних библиотек

Я сталкиваюсь с проблемой в nodejs, где я должен напечатать имя пользователя в журналах в метаданных. Каждый запрос имеет свое собственное имя пользователя, а nodejs асинхронно переопределяет свойство имени пользователя, которое я создал для одиночного журнала.

Я читал о непрерывном локальном хранилище, но я ищу более простое решение, не требующее каких-либо внешних библиотек.

Желательно ли создавать отдельный экземпляр журнала для каждого запроса?

PS: я очень новичок в Node js!!

1 ответ

Я просто выяснил, как решить эту проблему, но мне пришлось полагаться на библиотеку непрерывного локального хранилища.

var myses= require('continuation-local-storage').createNamespace('myses');

app.use(function (req, res, next) {
    myses.bindEmitter(req);
    myses.bindEmitter(res);
    myses.run(function () {
      myses.set('someid','somevalue');
      next();
        });
  });

и в каком-то другом файле, например, настраиваемый регистратор,

var thisSession = require('continuation-local-storage').getNamespace('myses');
thisSession .get('someid');
Другие вопросы по тегам