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

时间:2017-09-28 08:31:53

标签: javascript node.js bash centos

在我的CentOS 7.x服务器上运行Node(v6.7.0和v0.10.36)。

echo 2 > /sys/class/gpio/unexport

运行如下:

forever start /home/www/html/server/mynode.js

mynode.js的代码:

/usr/bin/node /home/www/html/server/mynode.js

我如何告诉NodeJS或Linux保留日志?所以我可以听一下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); } }); }); 发生的事情吗?

2 个答案:

答案 0 :(得分:7)

您可以覆盖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代码的顶部即可。

答案 1 :(得分:1)

可以选择捕获日志 forever -o path/to/logfile start /home/www/html/server/mynode.js

来自文档-o OUTFILE Logs stdout from child script to OUTFILE