Freigeben über


Erhalten von Buildprotokollen mit MSBuild

Indem Sie Befehlszeilenoptionen mit MSBuild verwenden, können Sie angeben, wie viele Builddaten zu überprüfen sind und ob Sie Builddaten in eine oder mehrere Dateien speichern möchten. Sie können auch eine benutzerdefinierte Protokollierung zum Sammeln von Builddaten angeben. Weitere Informationen zu MSBuild-Befehlszeilenoptionen, die in diesem Thema nicht behandelt werden, finden Sie unter Befehlszeilenreferenz.

Hinweis

Wenn Sie Projekte mithilfe von Visual Studio-IDE erstellen, können Sie die Probleme diese Builds beheben, indem Sie Buildprotokolle überprüfen. Weitere Informationen finden Sie unter Vorgehensweise: Anzeigen, Speichern und Konfigurieren von Buildprotokolldateien.

Festlegen des Detailgrads

Wenn Sie ein Projekt mithilfe von MSBuild ohne Angabe einer Detailebene erstellen, werden die folgenden Informationen im Ausgabeprotokoll angezeigt:

  • Fehler, Warnungen und Nachrichten, die als äußerst wichtig eingestuft werden.

  • Einige Statusereignisse.

  • Eine Übersicht des Build.

Mithilfe des Schalters -verbosity ( -v) können Sie steuern, wie viele Daten im Ausgabeprotokoll angezeigt werden. Verwenden Sie für die Problembehandlung entweder den Ausführlichkeitsgrad detailed (d) oder diagnostic (diag), der die meisten Informationen bietet.

Der Buildprozess ist möglicherweise langsamer, wenn Sie -verbosity auf detailed festlegen, und sogar noch langsamer, wenn Sie -verbosity auf diagnostic festlegen.

msbuild MyProject.proj -t:go -v:diag

Einstellungen für die Ausführlichkeit

In der folgenden Tabelle wird gezeigt, wie sich die Ausführlichkeit der Protokolle (Spaltenwerte) darauf auswirkt, welche Nachrichtentypen (Zeilenwerte) protokolliert werden.

Nachrichtentyp/Ausführlichkeit Quiet Minimal Normal Detailliert Diagnose
Fehler
Warnungen
Nachrichten mit hoher Priorität
Nachrichten mit normaler Priorität
Nachrichten mit niedriger Priorität
Zusätzliche Informationen zur MSBuild-Engine

Speichern des Buildprotokolls in einer Datei

Sie können den Schalter -fileLogger (fl) verwenden, um Builddaten in einer Datei zu speichern. Im folgenden Beispiel werden die Builddaten in einer Datei mit dem Namen msbuild.log gespeichert.

msbuild MyProject.proj -t:go -fileLogger

Im folgenden Beispiel heißt die Protokolldatei MyProjectOutput.log, und der Ausführlichkeitsgrad der Protokollausgabe ist auf diagnostic festgelegt. Geben Sie diese beiden Einstellungen mithilfe des Schalters -fileLoggerParameters (flp) an.

msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic

Weitere Informationen finden Sie unter Befehlszeilenreferenz.

Speichern der Protokollausgabe in mehreren Dateien

Im folgenden Beispiel wird das gesamte Protokoll in msbuild1.log, nur die Fehler in JustErrors.log und nur die Warnungen in JustWarnings.log gespeichert. Im Beispiel werden Dateinummern für jede der drei Dateien verwendet. Die Dateinummern werden nach den Schaltern -fl und -flp angegeben (z. B. -fl1 und -flp1).

Die Schalter -fileLoggerParameters (flp) für die Dateien 2 und 3 gibt an, wie jede Datei benannt werden und was sie enthalten soll. Es wird kein Name für die Datei 1 angegeben, deshalb wird der Standardname msbuild1.log verwendet.

msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly

Wenn Sie eine Shell verwenden, die Semikolons interpretiert (z. B. Bash), setzen Sie jede Option, die Semikolons enthält, in einfache oder doppelte Anführungszeichen, um eine Interpretation als Befehlstrennzeichen zu verhindern. Weitere Informationen finden Sie unter Befehlszeilenreferenz.

Speichern eines binären Protokolls

Sie können das Protokoll mit dem Parameter -binaryLogger (bl) in einem komprimierten, binären Format speichern. Dieses Protokoll enthält eine ausführliche Beschreibung vom Buildprozess und kann mithilfe von bestimmten Protokollanalysetools gelesen werden.

Im folgenden Beispiel wird eine binäre Protokolldatei mit dem Namen binarylogfilename erstellt.

-bl:binarylogfilename.binlog

Sie können die Anzeige für strukturierte Protokolle verwenden, um binäre Protokolle so anzuzeigen, dass sich die Situation viel einfacher beobachten lässt.

Weitere Informationen finden Sie unter Befehlszeilenreferenz.

Verwenden einer benutzerdefinierten Protokollierung

Sie können eine eigene Protokollierung schreiben, indem Sie einen verwalteten Typ erstellen, der die ILogger-Schnittstelle implementiert. Sie können eine benutzerdefinierte Protokollierung verwenden, um z. B. Buildfehler per E-Mail zu versenden oder sie in einer Datenbank oder in einer XML-Datei zu protokollieren. Weitere Informationen finden Sie unter Buildprotokollierungen.

In der MSBuild-Befehlszeile geben Sie die benutzerdefinierte Protokollierung mithilfe des Schalters -logger an. Sie können auch den Schalter -noconsolelogger verwenden, um die Standardkonsole zu deaktivieren.