这应该是一个微不足道的问题,但我似乎没有理会它。有什么简单的方法可以将我所有的 console.log
输出重定向到一个文件吗? console.log
以良好的方式对提供的对象进行格式化,并与非普通 JSONable 对象的对象正确交互。
例如,如果我这样做
var myerr = new Error('There has been an error');
console.log(myerr);
我明白了
[Error: There has been an error.]
如果我只是这样做
process.stdout.write(JSON.stringify(myerr));
我明白了
{}
如果我这样做
process.stdout.write(myerr.toString());
我明白了
Error: There has been an error
因此,如果我用一个函数覆盖我的 console.log
,该函数使用上述任何技巧循环其参数并将输出重定向到一个文件,日志将不会完全相同。
所以我想知道:console.log
在将提供的对象输出到控制台之前做了什么处理?它只是在每个对象上调用 .toString()
,用 []
包装东西并将所有内容发送到 process.stdout.write
?或者它会做一些其他类型的预处理吗?
最佳答案
我认为使用 linux I/O 重定向的简单方法。 只需以这种方式运行您的应用程序:
node app.js > log.txt
您应用的所有输出消息都将重定向到 log.txt
关于node.js - 将 console.log 输出重定向到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678811/