PowerShell im SharePoint Umfeld ist eine gute Möglichkeit um wiederholbare und getestete Ergebnisse innerhalb einer SharePoint-Farm zu erzielen. Außerdem ist bei einer Konfiguration mittels SharePoint auch die Dokumentation häufig einfacher umzusetzen als über die Oberfläche. Aus diesem Grund möchte ich in nächster Zeit unter dem Schlagwort “PowerShell Toolbox” kleine Skripts oder auch nur hilfreiche Cmdlets beschreiben die das Leben etwas einfacher machen.

Anfangen möchte ich mit einem kleinen Skript welches ich nahezu in jedem Skript einbinde. Es geht hierbei um das Logging. Hier ist häufig die Anforderung, dass eine Ausgabe nicht nur auf der Konsole erfolgt sondern auch noch in eine Log-Datei geschrieben wird.

Um nicht jedes Mal aufs Neue dieses umzusetzen habe ich eine Funktion geschrieben, die dieses für mich tut.

image

Zu Anfang wird der Pfad der Powershell-Datei sowie das aktuelle Datum und die aktuelle Uhrzeit ermittelt. Dieses alles wird benötigt um die Logdatei erzeugen zu können.  Anschließend folgt die eigentliche Funktion.

Der Funktion werden zum einen der Text und das Log-Level übergeben. Das Log-Level gibt an ob es sich bei dem Text um ein Info-Text eine Warnung oder einen Fehler handelt. Als erstes wird das Datum und die Uhrzeit zum Zeitpunkt des Aufrufs der Funktion ermittelt ($logdate). Nun folgen die einzelnen Unterscheidungen anhand der Variables $level.

image

Je nach Level wird vor den Text und dem Datum/Uhrzeit der Text “[INFO]”, “[WARNING]”, oder “[ERROR]” geschrieben. Auch erfolgt die Darstellung auf der Konsole für jedes Level unterschiedlich (-Foregroundcolor).
Zum Schluss wird der Text dann in die Logdatei geschrieben.

Um nun im laufenden Skript etwas in die Log-Datei zu schreiben reicht der einfache Aufruf (wlog „Dies ist ein Test“), um eine Info-Meldung abzusetzen.

image

Um eine “Error-Meldung” in das Log zu schreiben wird hinter den Text die Zahl 2 angehängt.

image

Während der Laufzeit sieht dieses dann folgendermaßen aus:

In der Konsole In der Textdatei
image image

Das Skript kann hier heruntergeladen und gerne auch erweitert werden. Ich freue mich über Feedback oder Anregungen.

2 Comments

  1. Pingback: PowerShell Toolbox: Logging - SharePoint Blogs in German - Bamboo Nation

Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.