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.