На моем сервере CentOS 7.x я запускаю узел (v6.7.0 и v0.10.36).
forever start/home/www/html/server/mynode.js
который выполняется следующим образом:
/usr/bin/node/home/www/html/server/mynode.js
КОД mynode.js:
var http = require('http');
var net = require('net');
var url = require('url');
var io = require('socket.io').listen(3004);
io.set('log level', 1);
io.sockets.on('connection', function (socket) {
socket.on('disconnect', function () {
try{
console.log(JSON.stringify(db));
} catch(dis) {
console.log(dis);
}
});
});
Как я могу сказать NodeJS или Linux, чтобы вести журнал? Чтобы я мог слушать, что происходит на tail -f/var/log/mynode.log
?
Вы можете перезаписать console.log
var fs = require('fs');
var trueLog = console.log;
console.log = function(msg) {
fs.appendFile("/tmp/log.log", msg, function(err) {
if(err) {
return trueLog(err);
}
});
//trueLog(msg); //uncomment if you want logs
}
Просто поставьте этот фрагмент поверх вашего кода nodejs.
Там есть возможность для записи журналов forever -o path/to/logfile start/home/www/html/server/mynode.js
Из документов -o OUTFILE Logs stdout from child script to OUTFILE
info: socket.io started warn: error raised: Error: listen EADDRINUSE
forever start /home/www/html/server/mynode.js > /var/log/mynode.log
, например