我有一个带有一些内部日志记录的漫长过程的Node.js程序:
console.log(msg)
当我在Windows Node.js上运行时,消息不会实时显示 - 我在同一时间收到大量消息。
当我使用“console.warn”而不是“console.log”时,消息会更早显示,但仍然不是实时的。
有没有办法告诉Node.js在每条日志消息后自动刷新控制台缓冲区?
答案 0 :(得分:2)
事实证明console.log
在Windows中是异步的。在linux / unix中它是阻塞的,因此它不会缓冲并需要刷新,将console.logs
放在事件队列中。
一种替代方案可能是process.stdout
编辑:好的,这不是解决方案。其他人可能有更好的解决方案,但您可以使用一个更全面的日志库,也可以使用更多信息填充您的console.log,告诉您日志发生的时间和位置,以便将它们关联起来。