2015-11-02 44 views
0

我想有一个进程捕获访问和错误日​​志,没有日志被写入磁盘。我想将node.js process.stdin用于日志。任何想法,如果nginx可以设置流日志到另一个进程,而不是磁盘?Nginx的日志文件到另一个进程的stdin

回答

1

不,那是不可能的,这里有一个TRAC:https://trac.nginx.org/nginx/ticket/73

然而,由于对TRAC的评论,你可以很容易地使用管道日志使用tail -F /path/to/access/log | your-node-script.js文件。请注意,这仍然会写入磁盘然后读取,因此请考虑IOP的使用情况。

另一个选择是将Nginx的日志发送到充当系统日志服务器的节点应用程序。在Nginx中做这件事很简单(参见:http://nginx.org/en/docs/syslog.html)。然后您将需要创建一个简单的Node.js服务器来侦听端口514 UDP并处理日志。在这里突出显示的行中看到一个示例:https://github.com/cconstantine/syslog-node/blob/e243e2ae7ddc8ef9214ba3450a8808742e53d37b/server.js#L178-L200

+0

不错,使用节点作为系统日志服务器听起来很完美。谢谢! – dzm

相关问题