Node.js 앱을 systemd로 설정했습니다. 이 응용 프로그램은 NGINX 뒤에 있습니다.
로그 액세스 NGINX 파일에 내 Node.js 응용 프로그램의 콘솔 출력을 추가하고 싶습니다.
어떻게하면됩니까?콘솔 출력을 추가하는 방법 로그 액세스 NGINX 파일에 Node.js 앱이 있습니까?
미리 감사드립니다.
Node.js 앱을 systemd로 설정했습니다. 이 응용 프로그램은 NGINX 뒤에 있습니다.
로그 액세스 NGINX 파일에 내 Node.js 응용 프로그램의 콘솔 출력을 추가하고 싶습니다.
어떻게하면됩니까?콘솔 출력을 추가하는 방법 로그 액세스 NGINX 파일에 Node.js 앱이 있습니까?
미리 감사드립니다.
더 간단한 방법이 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가 없다. 코드에 오류가있을 수 있습니다.
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를 구현합니다.
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