NodeJS - 如何将所有console.log写入文件?

2 javascript bash centos node.js

在我的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);
    }

  });
});
Run Code Online (Sandbox Code Playgroud)

我如何告诉NodeJS或Linux保持日志?所以我可以听听最近发生的事情tail -f /var/log/mynode.log

Nik*_*kin 8

你可以覆盖你的 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
}
Run Code Online (Sandbox Code Playgroud)

只需将此代码段放在nodejs代码的顶部即可.