Sdílet prostřednictvím


Protokolování v prostředí s více procesory

Schopnost MSBuild použít více procesorů lze výrazně zkrátit čas vytvoření projektu, ale také přidá složitost pro protokolování.V prostředí s jedním procesorem můžete protokolování zpracování příchozí události, zprávy, upozornění a chyby v předvídatelné, sekvenčním způsobem.Však v prostředí s více procesory z různých zdrojů událostí dorazit zároveň nebo mimo pořadí.Poskytuje nový více-processor-vědomi protokolovací nástroj MSBuild a umožňuje vytváření vlastních "předávání úhozy kláves."

Protokolování více procesorů sestavení

Při sestavení jednoho nebo více projektů v systém s více procesory nebo více jader, MSBuild události sestavení pro všechny projekty, které jsou generovány současně.Lavině data události může dorazit protokolování ve stejné době nebo mimo pořadí.To může přebytek nadbytek protokolování a způsobit zvýšené sestavení časy, nesprávné protokolování výstupu nebo přerušení sestavení.K řešení těchto problémů, MSBuild protokolovače můžete zpracovávat události mimo pořadí a korelaci událostí a jejich zdrojů.

Můžete zlepšit efektivitu protokolování ještě více tak, že vytvoříte vlastní předávání protokolů.Předávání vlastní protokolovací nástroj funguje jako filtr tím, že umožňuje zvolit před sestavením, události, které chcete sledovat.Při použití vlastní předávání protokolů nežádoucí události není protokolování přebytek nadbytek zbytečných souborů protokolů a pomalu sestavení.

Centrální protokolování Model

Nástroj MSBuild používá pro sestavení víceprocesorových "model Centrální protokolování." V modelu Centrální protokolování instanci MSBuild.exe slouží jako primární proces nebo "centrálního uzlu. Sekundární výskyty MSBuild.exe nebo "sekundární uzly" jsou připojeny k centrální uzel.Programy k zaznamenávání všech ILogger podle stisknutých připojené na centrální uzel se označují jako "centrální úhozy kláves" a úhozy kláves, které jsou připojené k sekundární uzly jsou známé jako "sekundární úhozy kláves."

Dojde-li k sestavení, sekundární úhozy kláves provoz události směrovat centrální úhozy kláves.Vzhledem k tomu, že události pocházejí z několika sekundární uzly, data dorazí na centrální uzel současně ale prokládaný.K vyřešení odkazů události do projektu a cíl události, argumenty události zahrnují další sestavení události kontextové informace.

Ovšem pouze ILogger je nutné provést centrálního protokolovacího nástroje, doporučujeme, abyste také implementovat INodeLogger Pokud chcete centrálního protokolovacího nástroje s počet uzlů, které jsou připojeny k sestavení.Následující přetížení systému Initialize je volána metoda při inicializuje modul protokolování:

public interface INodeLogger: ILogger
{
    public void Initialize(IEventSource eventSource, int nodeCount);
}

Model distribuované protokolování

V modelu Centrální protokolování příliš mnoho příchozích zpráv, například při vytvoření mnoha projektů najednou, přebytek nadbytek centrální uzel, který zdůrazňuje systému a snižuje výkon sestavení.

MSBuild snížit tento problém, také umožňuje "distribuované protokolování model", který rozšiřuje model Centrální protokolování tím, že umožňuje vytvořit předávání úhozy kláves.Předávání protokolů se připojuje k sekundární uzel a přijímá příchozí události sestavení z daného uzlu.Předávání protokolů je stejně jako pravidelné protokolování můžete filtrovat události a pak předat pouze požadované ty na centrální uzel.Tím se sníží přenos zpráv na centrální uzel a proto umožňuje lepší výkon.

Předávání protokolů můžete vytvořit pomocí implementace IForwardingLogger rozhraní, která je odvozena z ILogger.Rozhraní je definováno jako:

public interface IForwardingLogger: INodeLogger
{
    public IEventRedirector EventRedirector { get; set; }
    public int NodeId { get; set; }
}

K předávání událostí v předávání protokolů, zavolejte ForwardEvent metoda IEventRedirector rozhraní.Předat příslušné BuildEventArgs, nebo derivátu, jako parametr.

Další informace naleznete v tématu Vytváření předávajících (sekundárních) protokolovacích nástrojů.

Připojení distribuovaných Logger

K připojení distribuovaných protokolovacího nástroje v příkazovém řádku sestavení, použijte /distributedlogger (nebo /dl pro krátké) přepnout.Formát pro zadávání názvů typů protokolů a třídy jsou stejné jako u /logger přepnout, s tím rozdílem, že distribuované protokolovacího nástroje je tvořen dvěma třídami protokolování: předávání protokolů a centrálního protokolovacího nástroje.Následuje příklad připojení distribuovaných protokolování:

msbuild.exe *.proj /distributedlogger:XMLCentralLogger,MyLogger,Version=1.0.2,
Culture=neutral*XMLForwardingLogger,MyLogger,Version=1.0.2,
Culture=neutral

Hvězdička (*) odděluje názvy dvou protokolů /dl přepnout.

Viz také

Koncepty

Protokolovací nástroje sestavení

Vytváření předávajících (sekundárních) protokolovacích nástrojů