2017-01-26 2 views
0

Ich bin mit einem Problem in Nodejs konfrontiert, wo ich den Benutzernamen in den Protokollen in den Metadaten drucken muss. Jede Anfrage hat ihren eigenen Benutzernamen und nodejs ist async und überschreibt die username-Eigenschaft, die ich für das Singleton-Protokoll erstellt habe.Hinzufügen von MDC in Nodejs mit log4j ohne externe Bibliotheken

Ich habe über Continuous-Local-Speicher gelesen, aber ich suche nach einer einfacheren Lösung ohne externe Bibliotheken zu benötigen.

Ist es ratsam, für jede Anforderung eine separate Protokollinstanz zu erstellen?

P.S .: Ich bin sehr neu bei Node js !!

Antwort

0

nur ein Update, ich habe herausgefunden, wie das zu lösen, aber musste auf die Bibliothek Continuous-Local-Storage verlassen.

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(); 
     }); 
    }); 

und in einer anderen Datei, wie benutzerdefinierte Logger,

var thisSession = require('continuation-local-storage').getNamespace('myses'); 
thisSession .get('someid'); 
Verwandte Themen