如何使用winston将unique_id附加到我的快递节点日志而不重构所有内容?

And*_*ega 5 logging node.js unique-id express winston

我有一个Express应用程序.我想跟踪单个请求所做的所有记录.

Apache有一个名为的模块mod_unique_id,它在请求头中注入一个包含唯一哈希的特殊模块.我想在记录(任何东西)时使用这样的哈希.

例如,如果一个用户被apache分配了unique_id值"abcdefg"和我的代码中的某个地方(控制器,模型或任何东西),我生成一个调试日志,我希望每个日志条目都附加"abcdefg".

在我脑海中浮现的唯一想法是创建一个记录器实例app.use(),并将该记录器实例传递给所有需要的函数(模型,库等)以生成正确的响应.

不幸的是,这将导致我重写大量代码,让旧函数接受这个新的记录器实例.

有没有人知道一个更好的方法,每个"请求"有一个"记录器"实例,可以通过某种方式访问​​,而不会将这个"按请求创建的记录器"传递给任何东西?

PS:我目前正在使用winston日志