Psaní vícestránkovém-Processor podporující úhozy kláves
Schopnost MSBuild 3.5 využití více procesorů může snížit čas vytvoření projektu, ale přidává také složitost sestavení protokolování událostí.V prostředí s jedním procesorem události, zprávy, upozornění a chyby dorazit protokolovací předvídatelné, sekvenčním způsobem.V prostředí s více procesory lze však události z různých zdrojů dorazí, současně nebo pořadí.Stanovit, MSBuild 3.5 poskytuje vícestránkovém-processor podporující protokolování a nový model protokolování a umožňuje vytvořit vlastní "předávání úhozy kláves."
Robustnější výzvám protokolování
Při sestavení jednoho nebo více projektů v systému s více procesory nebo více jader, MSBuild pro všechny projekty jsou generovány v okamžiku vytvoření události.Lavině zprávy událostí může dorazit protokolovací současně nebo pořadí.Protože MSBuild 2.0 protokolovacího nástroje je navržen pro tuto situaci, může způsobit zvýšené sestavení časy, nesprávné protokolování výstupu nebo dokonce přerušené sestavení a dotěrnost přebytek nadbytek protokolování.K řešení těchto problémů MSBuild 3.5 protokolování lze zpracovávat události mimo číselné řady a korelaci událostí a jejich zdrojů.
Můžete zlepšit efektivitu protokolování, které jsou ještě více vytvořením vlastní předávání protokolů.Předávání vlastní protokolovací nástroj funguje jako filtr umožňuje tím před vytvořením, zvolte pouze události, které chcete sledovat.Při použití vlastních předávání protokolů nežádoucí události nelze dotěrnost přebytek nadbytek protokolování, zaplnit protokolů nebo pomalu sestavit časy.
Modely víceprocesorových protokolování
Pro sestavení vícestránkovém-processor týkající se problémů MSBuild 3.5 podporuje dva modely protokolování centrální a distribuovány.
Centrální protokolování modelu
V modelu centrálního protokolování jednu instanci MSBuild.exe funguje jako "centrální uzel" a podřízené instance centrální uzel ("sekundární uzlů") připojte k centrální uzel k provádění úkolů sestavení.
Úhozy kláves různých typů, které připojit k centrální uzel jsou známé jako "centrální úhozy kláves." Pouze jednu instanci každého typu protokolování lze připojit k centrální uzel současně.
Dojde sestavení sekundární uzly postupu jejich sestavení události centrální uzel.Centrální uzel směruje všechny události a také ty sekundární uzly jeden nebo více připojených centrální úhozy kláves.Úhozy kláves vytvořte soubory protokolu, které jsou založeny na příchozí data.
Ačkoli pouze ILogger je požadováno provádí centrální protokolování, doporučujeme také implementovat INodeLogger tak, aby centrální protokolování inicializuje s počtem uzlů, které se účastní sestavení.Následující přetěžování z Initialize vyvolá metodu při inicializaci modulu protokolování.
public interface INodeLogger: ILogger
{
public void Initialize(IEventSource eventSource, int nodeCount);
}
Jakékoli stávajícím ILogger-založené úhozy kláves může sloužit jako centrální úhozy kláves a připojit k sestavení.Však centrální úhozy kláves zapsán bez explicitní podporu scénářů víceprocesorových protokolování a mimo pořadí událostí přerušit sestavení nebo vytvořit výstup bezvýznamnou.
Distribuovaný Model protokolování
Dotěrnost přebytek v modelu centrálního protokolování příliš mnoho příchozích zpráv lze nadbytek centrální uzel, například při vytvoření mnoha projektů současně.To zdůrazňuje systémových prostředků a snížení výkonu sestavení.Pro usnadnění tento problém MSBuild 3.5 podporuje protokolování distribuovaného modelu.
Protokolování distribuovaný model rozšiřuje model centrálního protokolování umožňuje vytvořit předávání protokolů.
Předávání úhozy kláves
Předávání protokolů je sekundární lehký protokolování, který má filtr událostí, který připojí k sekundární uzlu a přijímá příchozí události sestavení z uzlu.Filtruje příchozí události a předá pouze ty, které zadáte do centrálního uzlu.Tato funkce omezuje přenos zprávy, který je odeslán do centrálního uzlu a zlepšuje celkový výkon sestavení.
Existují dva způsoby použití distribuovaných protokolování, takto:
Vlastní protokolovací předávání pre-fabricated s názvem ConfigurableForwardingLogger.
Napište vlastní vlastní předávání protokolů.
ConfigurableForwardingLogger vašim požadavkům, můžete změnit.To provedete volání protokolování na příkazovém řádku pomocí MSBuild.exe a seznam sestavení události, které chcete protokolování předá centrální uzel.
Alternativně můžete vytvořit vlastní předávání protokolů.Vytvořením vlastních předávání protokolů lze optimalizovat chování protokolování.Vytvoření vlastní předávání protokolů je však složitější úpravy pouze ConfigurableForwardingLogger.Další informace naleznete v tématu Vytváření předávání úhozy kláves.
Pro jednoduché použití ConfigurableForwardingLogger distribuovaného protokolování
Připojit ConfigurableForwardingLogger nebo vlastní předávání protokolů, použijte /distributedlogger přepnout (/dl pro krátké) příkazového řádku přírůstkově MSBuild.exe.Formát pro zadávání názvů typů protokolů a třídy je stejný jako u /logger přepnout, s výjimkou, že distribuované protokolování má vždy dvě třídy protokolování namísto jednoho předávání protokolů a centrální protokolování.Následuje příklad, jak připojit vlastní předávání protokolů s názvem XMLForwardingLogger.
C:\ WINDOWS\Microsoft.NET\Framework\v3.5>msbuild.exe myproj.proj/distributedlogger:XMLCentralLogger,MyLogger,Version=1.0.2,Culture=neutral*XMLForwardingLogger,MyLogger,Version=1.0.2,Culture=neutral
[!POZNÁMKA]
Hvězdička (*) musí oddělte názvy dvou protokolů v /dl přepnout.
Použití ConfigurableForwardingLogger se podobá použití jiných protokolů (jak je uvedeno v Získávání protokolů o sestavení pomocí nástroje MSBuild), s výjimkou, že připojení protokolování ConfigurableForwardingLogger namísto obvyklých MSBuild s protokoly a zadáte jako parametry události, které chcete ConfigurableForwardingLogger předat centrální uzel.
Pokud například chcete být upozorněni pouze v případě, že sestavení začíná a končí a dojde k chybě, předat BUILDSTARTEDEVENT, BUILDFINISHEDEVENT, a ERROREVENT jako parametry.Více parametrů lze předat oddělením oddělte středníky.Následuje příklad použití předávat pouze ConfigurableForwardingLogger BUILDSTARTEDEVENT, BUILDFINISHEDEVENT, a ERROREVENT události.
C:\ WINDOWS\Microsoft.NET\Framework\v3.5>msbuild.exe myproj.proj /distributedlogger:XMLCentralLogger,MyLogger,Version=1.0.2,Culture=neutral*ConfigureableForwardingLogger,C:\My.dll;BUILDSTARTEDEVENT; BUILDFINISHEDEVENT;ERROREVENT
Následuje seznam dostupných parametrů ConfigurableForwardingLogger.
Parametry ConfigurableForwardingLogger |
---|
BUILDSTARTEDEVENT |
BUILDFINISHEDEVENT |
PROJECTSTARTEDEVENT |
PROJECTFINISHEDEVENT |
TARGETSTARTEDEVENT |
TARGETFINISHEDEVENT |
TASKSTARTEDEVENT |
TASKFINISHEDEVENT |
ERROREVENT |
WARNINGEVENT |
HIGHMESSAGEEVENT |
NORMALMESSAGEEVENT |
LOWMESSAGEEVENT |
CUSTOMEVENT |
PŘÍKAZOVÝ ŘÁDEK |
PERFORMANCESUMMARY |
NOSUMMARY |
SHOWCOMMANDLINE |