如何使每个用户基地logging与hapi js

我正在使用winston日志logging框架和日志级别的基础上login,但现在我正面临着追踪错误的困难。 所以我们决定根据每个用户进行日志logging,这是我遇到问题的地方。

我想达到什么目的?

  • 每个用户的日志文件将在每个小时生成一次。 (我们可以跳过这个线程中的每个小时的约束),每个用户都有唯一的标识符“uid”。

我拥有的?

  • 我遵循这里使用的架构“ https://github.com/agendor/sample-hapi-rest-api ”。 一些额外的lib模块也存在。
  • 目前我正在使用winston库(但如果需要,我可以负担得起)。

stream程简介

  • 目前,我只能访问处理函数中的请求对象,但是我想要在DAO,库函数中logging事件(基于每个用户)。 在请求对象的处理函数中,“Uid”对我来说是可用的,因为我把authentication中间件中的uid放在请求中。

我的解决scheme(这不是优雅的)

  • 将请求对象(或唯一的uid)传递给每个函数和日志(使用winston)事件。 自定义传输将决定在哪里(在哪个文件,基于uid)把日志。 当然,这不是一个优雅的方式,因为每个函数都必须有uid参数才能logging事件,这看起来很糟糕。

我想从你那里得到什么?

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

相关文章: https : //github.com/hapijs/discuss/issues/51

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

下面是一个很好的文章,在快速执行: https : //datahero.com/blog/2014/05/22/node-js-preserving-data-across-async-callbacks/