Übersicht über die Protokollierung in MSBuild
MSBuild-Protokollierungen bieten eine Möglichkeit, die Berichterstellung mit Buildereignissen, Meldungen, Warnungen und Fehlern anzupassen. Protokollierungen können Informationen im Konsolenfenster anzeigen, in eine XML- bzw. Textdatei schreiben oder Builddaten in eine Datenbank einfügen.
MSBuild-Protokollierungen
Eine Protokollierung wird verwendet, um Informationen zu Buildereignissen, -meldungen, -warnungen und -fehlern an ein leicht lesbares und verständliches Protokoll zu übergeben. Die Logik einer Protokollierung wird in einen verwalteten Typ ausgegeben, durch den die ILogger-Schnittstelle implementiert wird.
Protokollierung der MSBuild-Standardkonsole
Wenn Sie MSBuild.exe von der Befehlszeile ausführen, verwendet MSBuild die Protokollierung der Standardkonsole, um Buildereignisinformationen im Konsolenfenster anzuzeigen. Mithilfe des Schalters /verbosity können Sie die Detailebene, die von der Protokollierung berücksichtigt werden soll, in der Befehlszeile anpassen.
Die Protokollierung der Standardkonsole akzeptiert zusätzliche Parameter, durch die die Ausgabe im Konsolenfenster geändert werden kann. Diese Parameter werden mithilfe des Schalters /consoleloggerparameters in der Befehlszeile angegeben.
Wenn Sie eine benutzerdefinierte Protokollierung verwenden, möchten Sie die von der Protokollierung der Standardkonsole angezeigten Informationen möglicherweise ausblenden. Verwenden Sie den Schalter /noconsolelogger in der Befehlszeile, um die Protokollierung der Standardkonsole zu deaktivieren.
MSBuild-Dateiprotokollierung
MSBuild verfügt außerdem über eine Dateiprotokollierung, durch die Buildereignisinformationen in einer Datei protokolliert werden. Um die Dateiprotokollierung auszuführen, verwenden Sie den folgenden Schalter in der Befehlszeile, wobei MyLog.log der Datei entspricht, in der die Protokollinformationen gespeichert werden sollen.
/l:FileLogger,Microsoft.Build;logfile=MyLog.log – Insgesamt akzeptiert die Dateiprotokollierung ebenfalls vier Parameter. Diese lauten wie folgt:
Logfile: Ein erforderlicher Parameter, der die Datei angibt, in der die Protokollinformationen gespeichert werden sollen.
Append: Ein optionaler boolean-Parameter, der angibt, ob das Protokoll an die angegebene Datei angefügt werden soll oder nicht. Bei true werden die Protokolldaten an den in der Datei bereits vorhandenen Text angefügt und bei false wird der Inhalt der Datei überschrieben. Die Standardeinstellung ist false.
Verbosity: Ein optionaler Parameter, durch den die globale Einstellung für den Ausführlichkeitsgrad ausschließlich für diese Dateiprotokollierung überschrieben wird. Dadurch können Protokolldaten in mehrere Protokollierungen geschrieben werden, von denen jede einen eigenen Ausführlichkeitsgrad aufweist.
Encoding: Ein optionaler Parameter, der die Codierung für die Datei angibt, z. B. UTF-8.
Mehrere Parameter werden durch Semikolons (;) getrennt. Durch die folgende Befehlszeile werden beispielsweise Buildereignisinformationen in der Datei MyLog.log protokolliert. Dabei wird das Protokoll mit diagnostic-Ausführlichkeitsgrad und UTF-8-Codierung an den Text in der Datei angefügt.
MSBuild MyProj.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log; append=true;verbosity=diagnostic;encoding=utf-8
Festlegen einer Protokollierung
Wenn Sie während eines Buildvorgangs eine andere Protokollierung als die der Standardkonsole verwenden möchten, geben Sie die benutzerdefinierte Protokollierung mit dem Schalter /logger in der Befehlszeile an. Ausführlichere Informationen zu MSBuild-Befehlszeilenschaltern finden Sie unter MSBuild-Befehlszeilenreferenz.
Schreiben einer Protokollierung
Die Logik einer Protokollierung wird in verwaltetem Code geschrieben und in der MSBuild-Befehlszeile unter Verwendung des Schalters /logger angegeben.
Sie können eine eigene Protokollierung schreiben, indem Sie einen verwalteten Typ erstellen, durch den die ILogger-Schnittstelle implementiert wird. Weitere Informationen finden Sie unter Buildprotokollierungen.
Siehe auch
Konzepte
Protokollierung in einer Multiprozessorumgebung
Erstellen von Weiterleitungsprotokollierungen