使用具有节点webapp的虚拟主机的logging器

我有一些低stream量的网站,我试图设置一个简单的方法,将独立节点应用程序转换成可以通过使用vhost在单台机器上为多个域提供服务的主应用程序require()东西。 这很有用,因为如果我不需要破解它,我可以轻松地将这些应用程序拆分回专门的部署。

我注意到,当我有两个应用程序都使用morgan做logging,只有第二个虚拟主机应用程序注册产生logging器输出。

我想我知道发生了什么事情,但弄清楚这一点并没有什么坏处。

由于这两个虚拟应用程序添加logging器作为中间件,我的猜测是,第一个应用程序绑定到标准输出,第二个应用程序,所以现在还不是很清楚第一个会发生什么,但可以肯定的是没有真正的机制来处理这种情况。

我希望有一种解决办法,就是从各个应用程序中取出日志logging,并将一个logging器放在vhost条目的前面(这有效地将我的完整应用程序转换为中间件),这样我仍然可以看到所有点击我的服务器上。

但是,这样做会阻止我能够做这样的事情,例如不logging这些应用程序中的特定应用程序中由静态中间件处理的任何请求。

我不知道这是否会起作用,但有时使用一个摩根实例的共享文件可以解决:

 // logger.js var morgan = require('morgan') exports = morgan 

并要求这个,而不是摩根:

 var morgan = require('./lib/logger') 

希望这对你有用。