linux - 使用带有 Node webapp 的 vhosts 的记录器

标签 linux node.js logging vhosts

我有一些低流量站点,我正在尝试设置一种简单的方法来将独立 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/

相关文章:

mysql - 如何在NodeJS mysql中模拟SQL注入(inject)

c - 在 Linux 下从一个 C 程序运行多个 C 程序

javascript - AJAX 测试工具

node.js - 方法覆盖安装时出错

node.js - $concatArrays 上的 MongoDB $sort

ruby-on-rails - Ruby On Rails 4.2 的可视化日志查看器

mysql - 在哪里可以找到有关 phpmyadmin 中用户更改的 mysql 日志

Java正确实现数学日志功能?

linux - 在一个 Web 应用程序下托管两个网站 - Azure 服务

python - 正确安装支持 FTS5 的 sqlite3