在Node.js中识别上下文

时间:2018-07-02 06:54:26

标签: javascript node.js logging

当前,我们的项目正在通过类中的静态方法处理日志记录。我们使用交易ID来跟踪请求的日志,不要与另一个请求的日志混淆。

但这有一个并发问题。

  1. request1设置交易ID(静态)
  2. request2设置交易ID(另一个)
  3. request1日志,然后使用request2的ID。

我们的架构师建议实例化一个记录器并将其作为所有函数的参数传递,但是这很烦人,因为有很多函数调用,因此这意味着要向数百个函数添加一个新的参数,从功能的角度来看没有意义。功能。

我认为其他任何解决方案都需要一种方法,以区分任何函数,它属于哪个上下文,即哪个请求称为函数。

我是nodejs的新手,是否有任何全局变量或其他机制可以帮助我?

1 个答案:

答案 0 :(得分:0)

blog分享了如何实现这一目标。

我看了看它使用的库,它指的是cls-hooked,它使用了一些内部/实验性的Node.js功能。

因此,不建议在生产中使用。

已编辑

最近,我在学习https://zipkin.io时发现了一个图书馆。它使用https://github.com/othiym23/node-continuation-local-storage来跟踪线程本地存储之类的值。值得一看