背景
在Node.js应用程序中,我使用:
- node-progress表示进度条
- winston用于日志记录
CLI应用程序将在构建文件时显示进度条。在构建操作期间,有时需要将信息/错误记录到控制台。这会干扰进度条,因为:
- 信息/错误在进度条之后立即记录到控制台,而不是在换行符上
- 日志完成后,进度条将再次打印,从而在控制台中打印多个进度条
控制台图示:
[===========----------------------] 11 / 33 builtwarn: something wrong here.
[=============--------------------] 13 / 33 builtwarn: something wrong here.
warn: example warning that continues here.
error: some stacktrace
[=================================] 33 / 33 built
问题
是否有办法确保进度条不受干扰,并且控制台的任何信息日志都打印在进度条的上方/下方?例如,只显示一个进度条。
我知道node-progress中有一个interrupt
方法,但我不确定如何在winston中使用它。
我可以想象这是CLI应用程序中相当常见的场景,所以任何关于如何通过其他依赖项/方法来实现它的建议/想法都将受到赞赏!
3条答案
按热度按时间bzzcjhmw1#
我自己开了一个进度条课程。
您可以打印
\r
以清除屏幕上的最后一行。然后打印日志。
之后,打印
\n
,确保新进度条不会清除您的日志。xfyts7mz2#
您可以使用此库来修复您问题:https://www.npmjs.com/package/cli-progress
x8goxv8g3#
同样的问题,但是我使用cli-progress和log4js,我没有找到比将日志从控制台重定向到文件更好的解决方案。