2015-11-02 43 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

相關問題