PowerShell:
Protokollierung
Wie man es macht:
Hier sind einige grundlegende Informationen darüber, wie Sie einfaches Logging in Ihre Skripte einbauen:
# Eine einfache Log-Nachricht erstellen
Write-Host "Info: Der Skriptprozess wird gestartet."
# In eine Datei schreiben
"Info: Das ist eine geloggte Nachricht." | Out-File -Append myLog.log
# Das eingebaute Cmdlet für detaillierteres Logging verwenden
Start-Transcript -Path "./detailedLog.log"
Write-Output "Warnung: Etwas ist nicht ganz richtig."
# ... Ihr Skript macht Sachen
Stop-Transcript
# Ausgabe von detailedLog.log
******************************
Windows PowerShell-Transkript start
Startzeit: 20230324112347
Benutzername : PShellGuru@example.com
Ausführender Benutzer: PShellGuru@example.com
Konfigurationsname:
Maschine : PS-DEVBOX (Microsoft Windows NT 10.0.17763.0)
Host-Anwendung: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Prozess-ID: 2024
PS-Version: 7.1.2
Jetzt gibt es in Ihren Logs eine Spiel-für-Spiel-Beschreibung dessen, was Ihr Code gemacht hat.
Tiefgreifende Einblicke:
Historisch gesehen ist das Logging fast so alt wie die Programmierung selbst. Es ist wie das Logbuch eines Kapitäns, nur für Software. Früher hätte es Druckausgaben oder Fernschreibermaschinen sein können; heute geht es um Dateien und ausgefeilte Log-Management-Systeme.
Wenn Sie tief in den PowerShell-Gräben stecken, ist Write-Host
schnell und schmutzig, es spuckt jedoch nur Text auf die Konsole aus und ist nicht großartig für Aufzeichnungen. Mit Out-File
haben Sie eine einfache Möglichkeit, Text in eine Datei zu schreiben, aber für den richtigen Saft werden Sie Start-Transcript
und Stop-Transcript
verwenden wollen, die alles loggen – Eingaben, Ausgaben, das ganze Programm.
Alternativen? Sicher, wenn Sie im Unternehmensbereich arbeiten, könnten Sie sich das Windows-Ereignisprotokoll ansehen oder Software wie Logstash verwenden, aber für Ihr tägliches Skript bleiben Sie bei den Tools von PowerShell. Was die Umsetzung betrifft, erinnern Sie sich daran, schlau zu loggen – zu wenig und es ist nutzlos, zu viel und es ist nur weißes Rauschen.
Siehe auch:
Schauen Sie sich diese an, um alles über Logging in PowerShell in den Griff zu bekommen: