Sails.js:将控制器名称和功能添加到日志条目

时间:2017-06-22 09:25:06

标签: javascript node.js express sails.js morgan

我在sails.js v0.12.3中定制摩根日志记录,我可以通过引入基于req对象属性的新摩根标记来丰富日志条目 - 很好。

具体来说,我们要记录控制器及其函数。

目标日志条目为:

UserController - find - GET /api/v1/users 200 125.952 ms - -

目前我们有一个单独的日志语句,由Controller函数直接编写。但是在一些负载下,它们并不会一个接一个地出现。因此,我们希望将这些信息放在一个日志条目中。

我的初步尝试:

当我记录req.options.controller时,它总是输出' session'。我想那是因为我在http.js中的中间件订单。

order: [ 'startRequestTimer', 'cachePreflights', 'morgan', 'bodyParser', 'handleBodyParserError', 'compress', 'methodOverride', 'router', 'www', 'favicon', '404', '500' ],

但是morgan之后router导致根本没有摩根输出。

你有什么想法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

根据我的理解,

  1. 控制器由router决定并调用 因此,控制器是“会话”。 ({1}}开始之前(或通用/未定义的东西)。
  2. 如果是非404,非500请求,则router会返回响应 因此,如果中间件(router)在morgan之后,则不会触发它。
  3. 在准备好响应之前,还不知道响应时间。

    解决方案

    router中的中间件保留在router中 使用请求的order事件来打印日志。

    end