目前我们的项目正在通过类中的静态方法处理日志记录。我们使用事务 ID 来跟踪请求的日志,不要与其他日志混淆。
但这有一个并发问题。
- 请求1设置交易ID(静态)
- request2 设置交易id(另一个)
- request1 记录,然后它使用 request2 的 id。
我们的架构师建议实例化一个记录器并将其作为参数传递到所有函数中,但这很烦人,因为有很多函数调用,因此这意味着添加一个新参数,从功能的 Angular 来看没有意义,成百上千的功能。
我认为任何其他解决方案都需要一种方法,在任何函数中区分它属于哪个上下文,我的意思是,哪个请求调用了该函数。
我是 nodejs 的新手,有什么全局变量或其他机制可以帮助我吗?
最佳答案
有一个blog分享如何实现这一目标。
我看了一下它使用的库,它指的是cls-hooked它使用了一些内部/实验性 Node.js 功能。
因此,不太推荐在生产中使用。
已编辑
最近在学习的时候发现了一个图书馆https://zipkin.io .它使用 https://github.com/othiym23/node-continuation-local-storage跟踪线程本地存储等值(value)。值得一看
关于javascript - 识别 Nodejs 中的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51130548/