node.js - 将 console.log 输出重定向到文件

标签 node.js file console.log

这应该是一个微不足道的问题,但我似乎没有理会它。有什么简单的方法可以将我所有的 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/

相关文章:

javascript - html 中的重新加载按钮

node.js - 端点未通过 Fetch API 调用进行身份验证(使用 passport-google-oauth2)

java - 如何在Spring中上传apk?

c - 在 C99 中读取制表符分隔的数据

java - Java从多个txt文件中读取数据

javascript - 如何防止 JavaScript 函数计算分配给字符串变量的参数?

node.js - 在 Nodejs 中将值推送到 Mongodb 模型中

mysql - Nodejs - MySQL 错误处理

node.js - Clojurescript + Node.js 0.12.7 问题(错误 "process.binding(' evals')没有这样的模块 : evals")

javascript - 控制台登录 Angular