我有一些低流量站点,我正在尝试设置一种简单的方法来将独立 Node 应用程序转换为可以由使用 的主应用程序
在一台机器上为多个域提供服务。这很有用,因为如果我不必将其破解得太糟糕,我可以轻松返回以将这些应用拆分回专用部署。 require()
d 的东西vhost
我注意到的是,当我有两个应用程序都使用 morgan
进行日志记录时,只有注册的第二个 vhost 应用程序产生记录器输出。
我想我知道发生了什么,但把它弄清楚也没什么坏处。
由于两个虚拟主机应用程序都将记录器添加为中间件,我的猜测是第一个应用程序将其绑定(bind)到标准输出,第二个应用程序也是如此,所以现在还不清楚第一个应用程序发生了什么,但是可以肯定的是,没有真正的机制来处理这种情况。
我希望解决这个问题的方法是从各个应用程序中取出日志记录,并在 vhost 条目前面放置一个记录器(这有效地将我的完整应用程序变成了中间件),这样我仍然可以查看我服务器上的所有点击。
但是,这会阻止我做一些事情,比如不记录这些应用程序中特定应用程序中由静态中间件处理的任何请求。
最佳答案
我不确定这是否可行,但有时创建一个使用一个 morgan 实例的共享文件可能是解决方法:
// logger.js
var morgan = require('morgan')
exports = morgan
并通过以下方式要求这个而不是 morgan :
var morgan = require('./lib/logger')
希望这对你有用。
关于linux - 使用带有 Node webapp 的 vhosts 的记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27585372/