bash NodeJS - 如何将所有 console.log 写入文件?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/46464497/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
NodeJS - how to write to a file all the console.log?
提问by Nikita Malyschkin
On my CentOS 7.x server I am running Node (v6.7.0 and v0.10.36).
在我的 CentOS 7.x 服务器上,我运行的是 Node(v6.7.0 和 v0.10.36)。
forever start /home/www/html/server/mynode.js
forever start /home/www/html/server/mynode.js
which runs following:
运行如下:
/usr/bin/node /home/www/html/server/mynode.js
/usr/bin/node /home/www/html/server/mynode.js
CODE of 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);
}
});
});
How do i tell NodeJS or Linux to keep log? So that i can listen whats going on by tail -f /var/log/mynode.log
?
我如何告诉 NodeJS 或 Linux 保留日志?这样我就可以听听发生了tail -f /var/log/mynode.log
什么?
回答by Nikita Malyschkin
You can overwrite your console.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
}
Just put this snippet on top of your nodejs code.
只需将此代码段放在您的 nodejs 代码之上即可。
回答by nilobarp
There's an option for capturing logs
forever -o path/to/logfile start /home/www/html/server/mynode.js
有一个用于捕获日志的选项
forever -o path/to/logfile start /home/www/html/server/mynode.js
From the docs -o OUTFILE Logs stdout from child script to OUTFILE
从文档 -o OUTFILE Logs stdout from child script to OUTFILE