2016-07-24 71 views

回答

1

更簡單的方法是掛鉤console.log,並呼籲console.log作爲一般。

var util = require('util'); 
var JFile = require("jfile"); 
var nxFile = new JFile('/var/log/nginx/access.log'); 
... 
process.stdout.write = (function(write) { 
    return function(text, encoding, fd) { 
     write.apply(process.stdout, arguments); // write to console 
     nxFile.text += util.format.apply(process.stdout, arguments) + '\n'; // write to nginx 
    } 
})(process.stdout.write); 

您也可以通過改變在stdout代碼限定鉤console.errorstrerr上方。

P.S.我沒有nginx來驗證代碼。所以代碼可以包含錯誤:)

1

簡介:

使用JFile包,文件記錄可以流暢如下:

nxFile.text+='\n'+message; 

詳情:

添加功能上都(終端+ nginx的日誌)記錄,然後使用它代替直接使用console.log

var customLog=function(message){ 

    console.log(message); 
    logNginx(message); 
} 

然後,實施logNginx這就是所謂的內部的CustomLog

var JFile=require('jfile'); // "npm install jfile --save" required 
    let nxFile=new JFile('/var/log/nginx/access.log'); // check path before if exist in your system . IF no , change it with the available path 
    function logNginx(message){ 
     nxFile.text+='\n'+message; //append new line in nginx log file 
     } 

不要忘記安裝JFile npm install jfile這使得處理文件迅速完成。

0

您可以在您的nginx腳本中添加以下代碼。這應該工作

env NODE_BIN=/usr/bin/node 
env SCRIPT_FILE="server.js" 
env LOG_FILE=/var/log/logfilename.log 
env RUN_AS="root" 


$RUN_AS -- $NODE_BIN $SCRIPT_FILE >> $LOG_FILE 2>&1 
相關問題