Erstellen von Weiterleitungsprotokollierungen
Aktualisiert: November 2007
Durch Weiterleitungsprotokollierungen lässt sich die Protokollierungseffizienz erhöhen, da Sie die beim Erstellen von Projekten auf einem Mehrprozessorsystem zu überwachenden Ereignisse auswählen können. Indem Sie Weiterleitungsprotokollierungen aktivieren, können Sie verhindern, dass unerwünschte Ereignisse die zentrale Protokollierung überlasten, die Erstellung verlangsamen und das Protokoll unübersichtlich machen.
Zum Erstellen einer Weiterleitungsprotokollierung können Sie entweder die IForwardingLogger-Schnittstelle implementieren und anschließend deren Methoden manuell implementieren, oder Sie können die ConfigurableForwardingLogger-Klasse und deren vorkonfigurierten Methoden verwenden. (Letzteres genügt für die meisten Anwendungen.)
Registrieren von Ereignissen und Reagieren auf Ereignisse
Eine Weiterleitungsprotokollierung sammelt Informationen über Buildereignisse aus den Berichten des sekundären Buildmoduls. Hierbei handelt es sich um einen Workerprozess, der während der Builderstellung vom Hauptbuildprozess auf einem Multiprozessorsystem erstellt wird. Anschließend wählt die Weiterleitungsprotokollierung basierend auf den von Ihnen angegebenen Anweisungen die Ereignisse aus, die an die zentrale Protokollierung weitergeleitet werden sollen.
Sie müssen Weiterleitungsprotokollierungen registrieren, damit die zu überwachenden Ereignisse verarbeitet werden können. Um die Protokollierungen für Ereignisse zu registrieren, müssen die Protokollierungen die Initialize-Methode überschreiben. Diese Methode umfasst den optionalen Parameter nodecount, der auf die Anzahl der Prozessoren im System festgelegt werden kann. (Der Standardwert ist 1.)
Beispiele für Ereignisse, die überwacht werden können: TargetStarted, ProjectStarted und ProjectFinished.
In einer Multiprozessorumgebung werden Ereignismeldungen mit großer Wahrscheinlichkeit nicht in ihrer Reihenfolge empfangen. Sie müssen die Ereignisse daher mit dem Ereignishandler der Weiterleitungsprotokollierung auswerten und die Weiterleitungsprotokollierung so programmieren, dass sie die gewünschten Ereignisse an den Redirectordienst zum Weiterleiten an die zentrale Protokollierung übergibt. Hierzu können Sie die BuildEventContext-Klasse verwenden, die an jede Meldung angehängt ist, um so die weiterzuleitenden Ereignisse zu ermitteln. Anschließend können die Namen der Ereignisse an die ConfigurableForwardingLogger-Klasse (oder eine Unterklasse hiervon ) übergeben werden. Wenn Sie diese Methode verwenden, ist keine weitere spezifische Codierung zum Weiterleiten von Ereignissen erforderlich.
Angeben einer Weiterleitungsprotokollierung
Nachdem die Weiterleitungsprotokollierung in eine Assembly kompiliert wurde, müssen Sie MSBuild anweisen, diese während der Builderstellung zu verwenden. Verwenden Sie hierzu die Schalter /FileLogger, /FileLoggerParameters und /DistributedFileLogger zusammen mit MSBuild.exe. Der /FileLogger-Schalter weist MSBuild.exe an, dass die Protokollierung direkt angefügt wird. Der /DistributedFileLogger-Schalter bedeutet, dass pro Knoten eine Protokolldatei verwendet wird. Verwenden Sie zum Festlegen von Parametern für die Weiterleitungsprotokollierung den /FileLoggerParameters-Schalter. Weitere Informationen über diese und andere MSBuild.exe-Schalter finden Sie unter MSBuild-Befehlszeilenreferenz.
Multiprozessorfähige Protokollierungen
Wenn Sie auf einem Mehrprozessorsystem ein Projekt erstellen, werden die Buildmeldungen der einzelnen Prozessoren nicht automatisch in einer einheitlichen Folge zusammengefasst. Stattdessen müssen Sie mit der BuildEventContext-Klasse, die an jede Meldung angehängt ist, eine Priorität für die Meldungsgruppierung festlegen. Weitere Informationen zum Erstellen von Projekten in einem Mehrprozessorsystem finden Sie unter Protokollierung in einer Multiprozessorumgebung.
Siehe auch
Aufgaben
Gewusst wie: Schreiben von Protokollierungen