2016-07-24 6 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); 

또한 당신은 위의 코드에 strerr에 변화 stdout에 의해 console.error에 훅을 정의 할 수 있습니다.

P. 나는 코드를 확인하는 nginx가 없다. 코드에 오류가있을 수 있습니다.

1

개요 :

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

상세 사항 :

파일 로깅은 다음과 같이 원활하게 될 수 JFile 패키지를 사용

모두 (터미널 +의 nginx 로그)에 기록 기능을 추가 한 후 사용 console.log을 직접 사용하는 대신

var customLog=function(message){ 

    console.log(message); 
    logNginx(message); 
} 
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를 설치하는 것을 잊지 마세요 :그런 다음, 때 CustomLog 내부이라고 logNginx를 구현합니다.

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