使用log4j在Nodejs中添加MDC,无需外部库

时间:2017-01-26 22:21:03

标签: node.js log4j mdc

我在nodejs中遇到一个问题,我必须在元数据的日志中打印用户名。每个请求都有自己的用户名,而nodejs是异步的,它覆盖了我为单例日志创建的用户名属性。

我已阅读有关连续本地存储的信息,但我正在寻找一种更简单的解决方案,而无需任何外部库。

建议为每个请求创建一个单独的日志实例吗?

P.S。:我是Node js的新手!!

1 个答案:

答案 0 :(得分:0)

只是一个更新,我想出了如何解决这个问题,但不得不依赖于库连续本地存储。

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');