我收集了一些powershell脚本,其中一些称为其他脚本。其中一些下标也可以根据需要自行调用。如何快速向所有脚本添加日志记录,以便任何脚本调用都会生成日志文件以供以后检查?
有许多问题涉及日志记录,并提供了一些很好的答案,like this one。但我想知道我们能想出什么:
我在下面提出了我的答案,并希望分享,看看是否有其他想法如何处理这个问题,或者建议改进我的答案。
答案 0 :(得分:2)
我编写的支持代码(进一步向下)允许只为每个ps1文件添加以下内容。无论是在顶级还是由另一个脚本调用脚本,它都会自动为我提供日志记录:
x
支持此功能的代码位于ps_support.ps1中,位于我需要记录的powershell文件集合旁边。它使用Get-Variable和Set-Variable来处理调用者范围级别的几个变量:
; al has some unsigned value
mov dl, al
sar dl, 7
and dl, [signedByte]
imul BYTE [signedByte]
add ah, dl
是正常的,因此子范围可以看到
记录已经发生,而不是再次尝试启动它。#any params for script
. "$PSScriptRoot\ps_support.ps1"
StartTranscriptIfAppropriate
try
{
#all of the original script
}
finally
{
ConditionalStopTranscript
}
是私有的,因此范围可以知道是否
它负责停止记录。这是ps_support.ps1:
Logging__TranscriptStarted