这似乎很基本,但我似乎无法让它发挥作用。
var access = require( 'fs' ).createWriteStream( 'logs/test.access.log', { flags : 'a' } );
process.stdout.pipe( access );
我假设在执行此操作后使用console.log()时,该消息是否不会写入test.access.log?我没有得到任何错误,但我根本没有在文件中得到任何东西,所以我想知道是否有人可以帮助我理解流并从stdout写入我上面的日志文件。
谢谢!
答案 0 :(得分:0)
最有可能的是,在将流的缓冲区刷新到磁盘之前,您的Node.js应用程序正在关闭。这可能是因为你将进程自己的stdout传输到一个文件中,stdout通常不会关闭并刷新,直到之后 Node.js开始清理进程。
尝试将access.destroySoon();
粘贴到代码的末尾,看看是否会导致它在结束Javascript事件循环之前将数据刷新到磁盘。