Freigeben über


Abrufen von Build-Protokollen mit MSBuild

Mithilfe von Befehlszeilenoptionen mit MSBuild können Sie angeben, wie viele Builddaten Überprüft werden sollen, und ob Sie Builddaten in einer oder mehreren Dateien speichern möchten. Sie können auch einen benutzerdefinierten Logger angeben, um Builddaten zu sammeln. Informationen zu msBuild-Befehlszeilenoptionen, die in diesem Thema nicht behandelt werden, finden Sie unter Befehlszeilenreferenz.

Hinweis

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

Festlegen der Detailebene

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

  • Fehler, Warnungen und Nachrichten, die als sehr wichtig kategorisiert 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 eine Ausführlichkeitsstufe von detailed (d) oder diagnostic (diag), die die meisten Informationen bereitstellt.

Der Build-Prozess kann langsamer werden, wenn Sie -verbosity auf detailed setzen, und noch langsamer, wenn Sie -verbosity auf diagnostic setzen.

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

Einstellungen für die Ausführlichkeit

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

Nachrichtentyp/Ausführlichkeit Ruhig Wenig Normal Detailliert Diagnostik
Irrtümer
Warnungen
Nachrichten mit hoher Wichtigkeit
Nachrichten mit normaler Wichtigkeit
Nachrichten mit niedriger Wichtigkeit
Zusätzliche MSBuild-Engine-Informationen

Speichern des Buildprotokolls in einer Datei

Sie können die -fileLogger Option (-fl) verwenden, um Builddaten in einer Datei zu speichern. Im folgenden Beispiel werden Builddaten in einer Datei gespeichert, die msbuild.log genannt wird.

msbuild MyProject.proj -t:go -fileLogger

Im folgenden Beispiel wird die Protokolldatei mit dem Namen MyProjectOutput.log versehen, und die Ausführlichkeit der Protokollausgabe wird auf diagnostic gesetzt. Sie geben diese beiden Einstellungen mithilfe des -fileLoggerParameters Schalters (-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 gespeichert, nur die Fehler werden in JustErrors.log gespeichert und nur die Warnungen in JustWarnings.log. Im Beispiel werden für jede der drei Dateien Dateinummern verwendet. Die Dateinummern werden direkt hinter den -fl Und -flp Schaltern angegeben (z. B -fl1 . und -flp1).

Die -fileLoggerParameters (-flp) Optionen für Dateien 2 und 3 geben an, was jede Datei benennen soll und was in jede Datei enthalten sein soll. Für Datei 1 wird kein Name angegeben, sodass der Standardname von msbuild1.log verwendet wird.

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), platzieren Sie einfache oder doppelte Anführungszeichen um jede Option, die Semikolons enthält, um zu verhindern, dass sie als Befehlstrennzeichen interpretiert wird. Weitere Informationen finden Sie unter Befehlszeilenreferenz.

Speichern eines Binärprotokolls

Sie können das Protokoll mithilfe des -binaryLogger Schalters (-bl) in komprimierter Binärformatdatei speichern. Dieses Protokoll enthält eine detaillierte Beschreibung des Buildprozesses und kann von bestimmten Protokollanalysetools gelesen werden.

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

-bl:binarylogfilename.binlog

Sie können den Strukturierten Protokoll-Viewer verwenden, um binäre Protokolle auf eine Weise anzuzeigen, die es viel einfacher macht, zu sehen, was gerade passiert.

Weitere Informationen finden Sie unter Befehlszeilenreferenz.

Verwenden eines benutzerdefinierten Loggers

Sie können Einen eigenen Logger schreiben, indem Sie einen verwalteten Typ erstellen, der die ILogger Schnittstelle implementiert. Sie können z. B. einen benutzerdefinierten Logger verwenden, um Buildfehler in E-Mails zu senden, sie in einer Datenbank zu protokollieren oder sie in einer XML-Datei zu protokollieren. Weitere Informationen finden Sie unter Erstellen von Loggern.

In der Befehlszeile MSBuild geben Sie den benutzerdefinierten Logger mithilfe der -logger Option an. Sie können auch den -noconsolelogger Switch verwenden, um den Standardkonsolenprotokollierer zu deaktivieren.