如何在Windows上清空控制台输出(console.log)

5

我有一个Node.js程序,其中有一个长时间运行的过程,并带有一些内部日志记录:

console.log(msg)

当我在Windows上运行Node.js时,消息不会实时显示 - 我会在同一时间收到大量消息。

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

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


这也是Linux下的一个问题,未处理的异常可能会导致程序在所有输出可见之前终止,因此您无法看到最近调试console.log()语句的内容。 - Malvineous
1个回答

2
原来在Windows系统中,console.log是异步的。而在Linux/Unix系统中是阻塞的,因此不需要缓冲和刷新,直接将console.logs放到事件队列中。
另一种替代方法可能是使用process.stdout
编辑:好吧,这并不是一个解决方案。其他人可能有更好的解决方案,但你可以使用更全面的日志记录库或者为console.log添加更多信息,以便确定日志发生的时间和位置,从而进行相关性分析。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接