如何按顺序获得控制台响应?

问题描述 投票:0回答:1

我正在使用库“日志记录”模块来处理对控制台和日志文件的写入。 在脚本的末尾,我有一个“暂停”,以确保当脚本运行时,命令窗口在我可以仔细阅读之前不会关闭。 所以我的代码是:

Write-Log -Level 'DEBUG' -Message 'Debug level message
Write-Log -Level 'INFO' -Message 'Info level message' 
Write-Log -Level 'WARNING' -Message 'Warning level message' -Body @{source = 'Logging'}
Write-Log -Level 'ERROR' -Message 'Error level message'
Write-Log -Level 'INFO' -Message '********** IS FINISHING ************************' 

暂停

The console output is:

> [DEBUG  ] Debug level message
> [INFO   ] Info level message
> Press Enter to continue...: [WARNING] Warning level message
> [ERROR  ] Error level message
> [INFO   ] ********** IS FINISHING ************************

As you can see, the 'Pause' is displayed in the middle of the Write-Log console display messages.
I thought of putting a wait before the Pause but it seems a bit naff.
Is there a proper way of dealing with this?
powershell logging wait
1个回答
0
投票

事实证明,

Logging
模块
Write-Log
函数使用queue来存储给定的消息,因此不保证同步显示输出。

为了确保队列中的所有消息都已被处理并打印相应的主机(显示器)输出,您必须使用

Wait-Logging
命令。

正如您所确认的,将

Wait-Logging
放在脚本中的
pause
命令之前会产生所需的显示输出。

© www.soinside.com 2019 - 2024. All rights reserved.