我有一些流量较低的网站,我试图设置一种简单的方法,将独立节点应用转换为可以由使用require()
的主应用vhost
转换为morgan
的内容在一台机器上提供多个域。这很有用,因为如果我不必太糟糕,我可以轻松地将这些应用程序拆分为专用部署。
我注意到,当我有两个使用{{1}}进行日志记录的应用程序时,只有注册的第二个vhost应用程序会产生记录器输出。
我想我知道发生了什么事情,但澄清它并没有什么坏处。
由于两个vhosted应用程序都将记录器添加为中间件,我的猜测是第一个应用程序将它绑定到stdout,第二个应用程序也是如此,所以现在它并不是很清楚第一个应用程序会发生什么但可以肯定的是,没有真正的机制来处理这种情况。
我希望能解决这个问题的方法就是从各个应用程序中取出日志记录,并在vhost条目前放置一个记录器(这有效地将我的完整应用程序转换为中间件),这样我仍然可以看到我服务器上的所有点击。
然而,这将使我无法记录在特定的这些应用程序中不记录由静态中间件处理的任何请求。
答案 0 :(得分:1)
我不确定这是否会起作用,但有时候制作一个使用一个摩根实例的共享文件可以解决问题:
// logger.js
var morgan = require('morgan')
exports = morgan
并且需要这个而不是摩根:
var morgan = require('./lib/logger')
希望这适合你。