javascript - 将 node.js 登录到文件,无需其他模块

标签 javascript node.js

我正在将 Node 应用程序作为守护进程运行。调试守护进程时,我需要查看输出,因此我想将 stdout 和 stderr 重定向到一个文件。

我希望我可以像在 Python 或 C 中一样重新分配 stdoutstderr:

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.stdoutstderr 的引用。
(您可以在 source 中看到这一点)。

稍后重新分配它们不会影响控制台

重定向这些流的常用方法是启动重定向流的进程。

或者,您可以覆盖console方法并让它们写入您的文件。

关于javascript - 将 node.js 登录到文件,无需其他模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882236/

相关文章:

javascript - 使用q库在nodejs中进行for循环

javascript - 如何在ckeditor中粘贴Excel表格?

javascript - 如果 Javascript 不是多线程的,是否有任何理由实现异步 Ajax 队列?

javascript - 将图像从 Javascript 显示到Processing.js Canvas

javascript - 使用 Express Node.js 和 mongoose 声明 session

javascript - NodeJs 与 EC2 上的 ubuntu 服务器对话

javascript - Node.js 和 expressjs 路由到另一个文件夹

node.js - 不能使用 var HtmlReporter = require ('protractor-html-screenshot-reporter' )

javascript - 当我尝试向标记 django 添加多个单击监听器时,initMap 不是一个函数

Javascript检测要汇总的多个选择选项的总数