如何在Nodejs中获取管道标准输出到文件的基本设置?

时间:2012-03-19 19:49:10

标签: node.js

这似乎很基本,但我似乎无法让它发挥作用。

var access = require( 'fs' ).createWriteStream( 'logs/test.access.log', { flags : 'a' } );

process.stdout.pipe( access );

我假设在执行此操作后使用console.log()时,该消息是否不会写入test.access.log?我没有得到任何错误,但我根本没有在文件中得到任何东西,所以我想知道是否有人可以帮助我理解流并从stdout写入我上面的日志文件。

谢谢!

1 个答案:

答案 0 :(得分:0)

最有可能的是,在将流的缓冲区刷新到磁盘之前,您的Node.js应用程序正在关闭。这可能是因为你将进程自己的stdout传输到一个文件中,stdout通常不会关闭并刷新,直到之后 Node.js开始清理进程。

尝试将access.destroySoon();粘贴到代码的末尾,看看是否会导致它在结束Javascript事件循环之前将数据刷新到磁盘。