NodeJS – 如何写一个文件的所有console.log?

在我的CentOS 7.x服务器上,我正在运行Node(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捕获日志的选项forever -o path/to/logfile start /home/www/html/server/mynode.js

从docs -o OUTFILE Logs stdout from child script to OUTFILE