【发布时间】:2018-05-04 06:44:46
【问题描述】:
问题
我正在尝试将STDERR 输出捕获到日志文件中;但是,我遇到了一些严重的不一致问题,这让我的任务变得更加困难。
首先,我将我的ErrorActionPreference 设置为“停止”,这可能是我正在忍受的问题的一部分。
其次,我在下面显示的代码中为每个 git 命令尝试了两种变体:
变体 01
& git add $path2File 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
& git commit -m "Some logical update message" 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
& git status 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
& git push 2>&1 | Out-File "$LogPath\$tmpLogName" -Append
变体 02
& git add $path2File 2>&1 >> "$LogPath\$tmpLogName" -Append
& git commit -m "Some Logical update message" 2>&1 >> "$LogPath\$tmpLogName" -Append
& git status 2>&1 >> "$LogPath\$tmpLogName" -Append
& git push 2>&1 >> "$LogPath\$tmpLogName" -Append
还有其他几个变体,我根据遇到的常见问题混合了哪个命令使用哪个变体。
我遇到的主要问题是:
1) 每当遇到STDERR 输出时,无论消息如何,都会将其视为终止错误。
2) 由于多种原因,我创建自定义 Try/Catch 语句的尝试失败了。成功的STDERR 消息的退出代码并不总是相同的。由于消息并不总是使用相同或相似的消息,因此无法对警告以外的任何内容使用纯文本匹配。
注意:除非绝对必要,否则我会尝试在不更改 ErrorActionPreference 的情况下执行此操作。
问题
有谁知道如何处理记录 git 命令的 STDERR 消息,以便它始终记录响应而不会抛出终止错误,除非是真正的严重错误?
【问题讨论】:
标签: git powershell logging error-handling stderr