如何在 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 中填充更多信息,告诉您日志发生的时间和地点,以便您可以将它们关联起来。
我有一个 Node.js 程序,它有一个很长的过程并带有一些内部日志记录:
console.log(msg)
当我运行在WindowsNode.js时,消息不是实时显示的-我在同一时间收到大量消息。
当我使用 "console.warn" 而不是 "console.log" 时,消息显示得更早,但仍然不是实时的。
有没有办法告诉 Node.js 在每个日志消息后自动刷新控制台缓冲区?
原来console.log
在Windows中是异步的。在 linux/unix 中它是阻塞的,所以它不是缓冲并且需要刷新,将你的 console.logs
放在事件队列中。
另一种选择可能是 process.stdout
编辑:好的,这不是解决方案。其他人可能有更好的解决方案,但您可以使用更全面的日志记录库之一,或者在 console.log 中填充更多信息,告诉您日志发生的时间和地点,以便您可以将它们关联起来。