编写 C# PowerShell cmdlet - 如何将调试日志记录输出到 TeamCity 调用方
Writing a C# PowerShell cmdlet - how to output debug logging to TeamCity caller
我正在用 C# 编写 PowerShell cmdlet,我需要向脚本添加一些诊断日志记录,以便我可以通过 TeamCity 评估行为。在为函数启用 -Verbose
标志的情况下对 WriteVerbose 进行了试验,没有任何内容记录到 TeamCity。
cmdlet 的 Write-Host 等价物是什么?
以下 cmdlet 之间有什么区别:
- WriteCommandDetail
- 写入进度
- 写详细
- 写调试
- 写入警告
- 写入错误
- 写入对象
万一其他人遇到这个问题,这是我了解到的:PowerShell 支持许多不同的输出流。
然而,TeamCity 所追求的是上面的 none,[C#] Console.WriteLine 足以记录到 TeamCity 跟踪日志。
回答我之前的问题:
WriteError 用于正确返回异常(这很好用,尽管有点复杂,在调试 cmdlet 时仅使用 C# throw 会使 PowerShell 崩溃)。
WriteObject 用于将自定义或现有 C# 对象从 cmdlet 返回到变量赋值(例如 [PowerShell] $x = Do-Something,其中 [C#] WriteObject(Output) 将返回到 [PowerShell] $ x).
WriteInformation(PowerShell 5 中的新增功能)是写入输出流的新方法,Write-Output 现在重定向到信息流。
我正在用 C# 编写 PowerShell cmdlet,我需要向脚本添加一些诊断日志记录,以便我可以通过 TeamCity 评估行为。在为函数启用 -Verbose
标志的情况下对 WriteVerbose 进行了试验,没有任何内容记录到 TeamCity。
cmdlet 的 Write-Host 等价物是什么?
以下 cmdlet 之间有什么区别:
- WriteCommandDetail
- 写入进度
- 写详细
- 写调试
- 写入警告
- 写入错误
- 写入对象
万一其他人遇到这个问题,这是我了解到的:PowerShell 支持许多不同的输出流。
然而,TeamCity 所追求的是上面的 none,[C#] Console.WriteLine 足以记录到 TeamCity 跟踪日志。
回答我之前的问题:
WriteError 用于正确返回异常(这很好用,尽管有点复杂,在调试 cmdlet 时仅使用 C# throw 会使 PowerShell 崩溃)。
WriteObject 用于将自定义或现有 C# 对象从 cmdlet 返回到变量赋值(例如 [PowerShell] $x = Do-Something,其中 [C#] WriteObject(Output) 将返回到 [PowerShell] $ x).
WriteInformation(PowerShell 5 中的新增功能)是写入输出流的新方法,Write-Output 现在重定向到信息流。