为什么在一个项目中同时使用`morgan`和`debug`日志包

时间:2016-12-29 16:21:09

标签: node.js express

我刚从快速生成器创建了一个应用,它使用了两个记录器debugmorgan

/bin/www.js

const debug = require('debug')('myapp:server');
....
server.on('listening', onListening);
function onListening() {
    const addr = server.address();
    const bind = typeof addr === 'string'
        ? 'pipe ' + addr
        : 'port ' + addr.port;
    debug('Listening on ' + bind);
 --^^^^^^^--
}

/app.js

var logger = require('morgan');
...
app.use(logger('dev'));

为什么同时使用?只能将其中一个用于这两个目的吗?

1 个答案:

答案 0 :(得分:3)

morgan是您通常作为中间件附加的库,然后它会在请求流经您的系统时自动记录信息,特别是在timing看来。我不相信您通常会手动调用其他日志记录。

debug是您手动添加的morgan不一定知道或关心的其他信息。您还可以通过在环境变量中使用正则表达式来打开和关闭debug日志记录,这对于将命名空间日志限制到调试问题时您关注的日志非常有用。请参阅here

当然,您可以使用debug以相同的方式记录morgan相同的事情,但您必须手动完成(无论好坏)。