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

我刚刚从快递生成器创build了一个应用程序,它使用两个logging器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')); 

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

morgan是一个你通常作为中间件附加的库,然后当请求stream经你的系统时,它会自动logging信息,特别是在看似时间方面。 我不相信这是你通常手动调用额外的日志logging。

debug是你会手动添加morgan不一定知道或关心的附加信息。 您还可以通过在环境variables中使用正则expression式打开和closuresdebug日志logging,这对于在debugging问题时将名称空间logging限制为您关心的日志非常有用。 看到这里 。

所以可以肯定的是,你可以使用debug来loggingmorgan同样的事情,但是你必须手工完成(不论好坏)。