1

我正在使用winston日志框架并基于日志级别进行日志记录,但现在我在追踪错误方面遇到了困难。所以我们决定以每个用户为基础进行登录,这就是我遇到问题的地方。

我想实现什么?

  • 每个用户的日志文件将每小时生成一次。(我们可以跳过此线程中的每小时限制)并且每个用户都有唯一标识符“uid”。

是)我有的?

流程简介

  • 目前,我只能在处理函数中访问请求对象,但我也想在 DAO、库函数中记录事件(基于每个用户)。当我将 uid 放入身份验证中间件的请求中时,我可以在请求对象的处理程序函数中使用“uid”。

我的解决方案(不优雅)

  • 将请求对象(或仅 uid)传递给每个函数并记录(使用 winston)事件。自定义传输将确定放置日志的位置(在哪个文件中,基于 uid)。当然,这不是优雅的方式,因为每个函数都必须有 uid 参数才能记录事件,这似乎很糟糕。

我想从你这里得到什么?

  • 一种更好、更优雅的方法,它也是可扩展的。

相关帖子:https ://github.com/hapijs/discuss/issues/51

4

1 回答 1

0

尝试查看 Continuation-Local Storage: https ://github.com/othiym23/node-continuation-local-storage

这是一篇关于在 express 中实现它的好文章: https ://datahero.com/blog/2014/05/22/node-js-preserving-data-across-async-callbacks/

于 2016-04-15T15:49:09.183 回答