Vytvoření dopředné protokolovací nástroje

Předávání protokolovacích nástrojů zlepšuje efektivitu protokolování tím, že umožňuje zvolit události, které chcete monitorovat při vytváření projektů v systému s více procesory. Povolením protokolovacích protokolů předávání můžete zabránit nežádoucím událostem v zahlcení centrálního protokolovacího nástroje, zpomalení doby sestavení a nepotřebných událostech v protokolu.

Chcete-li vytvořit protokolovací nástroj pro předávání, můžete buď implementovat IForwardingLogger rozhraní a pak implementovat jeho metody ručně, nebo použít ConfigurableForwardingLogger třídu a její předem nakonfigurované metody. (Druhá možnost bude stačit pro většinu aplikací.)

Registrace událostí a reakce na ně

Předávací protokolovací modul shromažďuje informace o událostech sestavení, protože jsou hlášeny sekundárním modulem sestavení, což je pracovní proces, který je vytvořen hlavním procesem sestavení během sestavení v systému s více procesory. Potom protokolovací protokolovací služba vybere události, které se mají předávat do centrálního protokolovacího nástroje, na základě pokynů, které jste mu dali.

Abyste mohli zpracovávat události, které chcete monitorovat, musíte zaregistrovat předávací protokolovací nástroje. Chcete-li se zaregistrovat pro události, protokolovací nástroje musí přepsat metodu Initialize . Tato metoda nyní obsahuje volitelný parametr , nodecountkterý lze nastavit na počet procesorů v systému. (Ve výchozím nastavení je hodnota 1.)

Příklady událostí, které můžete monitorovat, jsou TargetStarted, ProjectStarteda ProjectFinished.

V prostředí s více procesory budou zprávy událostí pravděpodobně přijaty mimo pořadí. Proto je nutné vyhodnotit události pomocí obslužné rutiny události v předávacím protokolovacím nástroji a naprogramovat je, aby bylo možné určit, které události se mají předávat přesměrovači pro předávání do centrálního protokolovacího nástroje. K tomu můžete použít BuildEventContext třídu, která je připojená ke každé zprávě, a identifikovat události, které chcete přeposlat, a pak předat názvy událostí třídě ConfigurableForwardingLogger (nebo podtřídě). Pokud použijete tuto metodu, není k předávání událostí potřeba žádné jiné specifické kódování.

Určení protokolovacího nástroje pro předávání

Poté, co se protokolovací nástroj pro předávání zkompiloval do sestavení, je nutné, aby nástroj MSBuild používal během sestavení. Chcete-li to provést, použijte -FileLogger, -FileLoggerParametersa -DistributedFileLogger přepínače společně s MSBuild.exe. Přepínač -FileLogger říká MSBuild.exe , že protokolovací nástroj je přímo připojen. Přepínač -DistributedFileLogger znamená, že pro každý uzel existuje soubor protokolu. Pokud chcete nastavit parametry v protokolovacím nástroji pro předávání, použijte -FileLoggerParameters přepínač. Další informace o těchto a dalších přepínačích MSBuild.exe naleznete v tématu Příkazový řádek reference.

Protokolovací nástroje s podporou více procesorů

Když sestavíte projekt v systému s více procesory, zprávy sestavení z každého procesoru se automaticky neprokládání v jednotné sekvenci. Místo toho je nutné vytvořit prioritu seskupení zpráv pomocí BuildEventContext třídy, která je připojena ke každé zprávě. Další informace o vytváření více procesorů najdete v tématu Protokolování v prostředí s více procesory.