Добавить 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');