如何在 Windows 上刷新 console.log 输出

How to flush console.log output on Windows

我有一个 Node.js 程序,它有一个很长的过程并带有一些内部日志记录:

console.log(msg)

当我运行在WindowsNode.js时,消息不是实时显示的-我在同一时间收到大量消息。

当我使用 "console.warn" 而不是 "console.log" 时,消息显示得更早,但仍然不是实时的。

有没有办法告诉 Node.js 在每个日志消息后自动刷新控制台缓冲区?

原来console.log在Windows中是异步的。在 linux/unix 中它是阻塞的,所以它不是缓冲并且需要刷新,将你的 console.logs 放在事件队列中。

另一种选择可能是 process.stdout

编辑:好的,这不是解决方案。其他人可能有更好的解决方案,但您可以使用更全面的日志记录库之一,或者在 console.log 中填充更多信息,告诉您日志发生的时间和地点,以便您可以将它们关联起来。