PowerShell:
Loggning
Hur man gör:
Här är knepen för att strö in grundläggande loggning i dina skript:
# Skapa ett enkelt loggmeddelande
Write-Host "Info: Startar skriptprocessen."
# Skriva till en fil
"Info: Detta är ett loggat meddelande." | Out-File -Append myLog.log
# Använda den inbyggda cmdleten för mer detaljerad loggning
Start-Transcript -Path "./detailedLog.log"
Write-Output "Varning: Något är inte riktigt rätt."
# ... ditt skript gör grejer
Stop-Transcript
# Utdata från detailedLog.log
******************************
Windows PowerShell transkript start
Starttid: 20230324112347
Användarnamn : PShellGuru@example.com
Kör som-användare: PShellGuru@example.com
Konfigurationsnamn:
Maskin : PS-DEVBOX (Microsoft Windows NT 10.0.17763.0)
Värdapplikation: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Process-ID: 2024
PS-version: 7.1.2
Nu finns det ett spel-för-spel av vad din kod har ägnat sig åt i dina loggar.
Fördjupning:
Historiskt är loggning nästan lika gammal som programmering i sig. Det är som en skeppsdagbok, men för mjukvara. Förr i tiden kan det ha varit utskrifter eller teletypeskrivare; nu handlar det allt om filer och avancerade logghanteringssystem.
När du är nere i PowerShell-skottgraven är Write-Host
snabbt och smutsigt, men det spottar bara ut text till konsolen, inte så bra för att hålla register. Out-File
ger dig ett enkelt sätt att slänga text i en fil, men för den riktiga saften så vill du ha Start-Transcript
och Stop-Transcript
som loggar allt — inmatning, utmatning, hela köret.
Alternativ? Säkert, om du hanterar företag kanske du tittar på Windows Event Log eller använder mjukvara som Logstash, men för ditt dag-till-dag-skript, håll dig till PowerShell-verktygen. När det gäller genomförande, kom ihåg att logga smart – för lite och det är värdelöst, för mycket och det blir bara brus.
Se Också:
Kolla in dessa för att få koll på allt som rör loggning i PowerShell: