我正在将 Node 应用程序作为守护进程运行。调试守护进程时,我需要查看输出,因此我想将 stdout 和 stderr 重定向到一个文件。
我希望我可以像在 Python 或 C 中一样重新分配 stdout
和 stderr
:
fs = require('fs');
process.stdout = fs.openSync('/var/log/foo', 'w');
process.stderr = process.stdout;
console.log('hello');
当我直接运行脚本时,“hello”会打印到控制台!当然,当我在后台运行时,我既不会在控制台上看到输出(当然),也不会在 /var/log/foo
中看到输出。
我不想要或不需要复杂的日志记录。我只需要查看 Node 已经提供的内置消息。
最佳答案
console
对象在首次创建时会获取对 process.stdout
和 stderr
的引用。
(您可以在 source 中看到这一点)。
稍后重新分配它们不会影响控制台
。
重定向这些流的常用方法是启动重定向流的进程。
或者,您可以覆盖console
方法并让它们写入您的文件。
关于javascript - 将 node.js 登录到文件,无需其他模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882236/