Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.
Trasování je způsob, jak monitorovat provádění aplikace během běhu. Při vývoji můžete do aplikace .NET Framework přidat instrumentaci trasování a ladění a tuto instrumentaci můžete použít při vývoji aplikace i po jejím nasazení. Pomocí třídy System.Diagnostics.Trace, System.Diagnostics.Debuga System.Diagnostics.TraceSource třídy můžete zaznamenávat informace o chybách a spouštění aplikací v protokolech, textových souborech nebo jiných zařízeních pro pozdější analýzu.
Pojem instrumentace označuje schopnost monitorovat nebo měřit úroveň výkonu produktu a diagnostikovat chyby. Při programování to znamená schopnost aplikace začlenit:
Trasování kódu – Příjem informativních zpráv o spuštění aplikace za běhu
Ladění – Sledování a oprava programátorských chyb v aplikaci, která je ve vývoji. Další informace naleznete v tématu Ladění.
Čítače výkonu – Komponenty, které umožňují sledovat výkon aplikace. Další informace naleznete v tématu Čítače výkonu.
Protokoly událostí – Komponenty, které umožňují přijímat a sledovat hlavní události při provádění aplikace. Další informace najdete ve třídě EventLog.
Instrumentace aplikace umístěním příkazů trasování do strategických umístění v kódu je zvlášť užitečná pro distribuované aplikace. Pomocí příkazů trasování můžete aplikaci instrumentovat nejen k zobrazení informací, když se něco pokazí, ale také ke sledování toho, jak dobře aplikace funguje.
Třída TraceSource poskytuje vylepšené funkce trasování a lze je použít místo statických metod starší Trace třídy a Debug třídy trasování. Známé Trace a Debug třídy jsou stále široce používány, ale TraceSource třída se doporučuje pro nové příkazy trasování, například TraceEvent a TraceData.
Třídy Trace a Debug jsou identické, s výjimkou toho, že procedury a funkce třídy Trace jsou ve výchozím nastavení kompilovány do sestavení vydané verze, zatímco procedury a funkce třídy Debug nejsou.
Třídy Trace a Debug poskytují prostředky pro monitorování a zkoumání výkonu aplikace během vývoje nebo po nasazení. Třídu můžete například použít Trace ke sledování konkrétních typů akcí v nasazené aplikaci, když k nim dojde (například vytvoření nových databázových připojení), a proto můžete monitorovat efektivitu aplikace.
Trasování a ladění kódu
Během vývoje můžete pomocí výstupních metod Debug třídy zobrazit zprávy v okně Výstup integrovaného vývojového prostředí (IDE) sady Visual Studio. Například:
Trace.WriteLine("Hello World!")
Debug.WriteLine("Hello World!")
System.Diagnostics.Trace.WriteLine("Hello World!");
System.Diagnostics.Debug.WriteLine("Hello World!");
Každý z těchto příkladů zobrazí „Hello World!“ v okně výstupu, když se aplikace spustí při ladění.
To vám umožní ladit aplikace a optimalizovat jejich výkon na základě jejich chování v testovacím prostředí. Aplikaci můžete v sestavení ladění ladit pomocí zapnutého podmíněného atributu Debug , abyste dostali veškerý výstup ladění. Až bude vaše aplikace připravená k vydání, můžete sestavení vydané verze zkompilovat bez zapnutí podmíněného atributu Debug , aby kompilátor nezahrnul váš kód ladění do konečného spustitelného souboru. Další informace naleznete v tématu Postupy: Podmíněná kompilace s Trace a Debug. Další informace o různých konfiguracích sestavení pro vaši aplikaci najdete v tématu Kompilace a sestavení.
Pomocí metod Trace třídy můžete také trasovat provádění kódu v nainstalované aplikaci. Umístěním Trace Switches do kódu můžete řídit, zda se trasování provádí a jak je rozsáhlé. Díky tomu můžete monitorovat stav aplikace v produkčním prostředí. To je zvlášť důležité v obchodní aplikaci, která používá více komponent spuštěných na více počítačích. Způsob použití přepínačů po nasazení můžete řídit prostřednictvím konfiguračního souboru. Další informace naleznete v tématu Postupy: Vytvoření, inicializace a konfigurace přepínačů trasování.
Při vývoji aplikace, pro kterou chcete použít trasování, obvykle zahrnete do kódu aplikace zprávy o trasování a ladění. Až budete připraveni nasadit aplikaci, můžete zkompilovat sestavení pro vydání bez aktivace podmíněného atributu Ladění. Můžete však zapnout podmíněný atribut Trasování tak, aby kompilátor obsahoval váš trasovací kód ve spustitelném souboru. Další informace naleznete v tématu Postupy: Podmíněná kompilace s Trace a Debug.
Fáze trasování kódu
Existují tři fáze trasování kódu:
Instrumentace – do aplikace přidáte trasovací kód.
Trasování – kód trasování zapisuje informace do zadaného cíle.
Analýza – vyhodnocujete informace o trasování, abyste identifikovali a porozuměli problémům v aplikaci.
Během vývoje zapisují výstupní metody ladění a trasování informace ve výchozím nastavení do okna Výstup v sadě Visual Studio. V nasazené aplikaci metody zapisují trasovací informace do zadaných cílů. Další informace o zadání výstupního cíle pro trasování nebo ladění naleznete v tématu Posluchači trasování.
Následuje celkový přehled hlavních kroků, které se obvykle týkají použití trasování k analýze a opravě potenciálních problémů v nasazených aplikacích. Další informace o provedení těchto kroků najdete na příslušném odkazu.
Použití trasování v aplikaci
Po nasazení aplikace zvažte, který výstup trasování budete chtít přijímat na místě.
Vytvořte sadu přepínačů. Další informace naleznete v části Postupy: Konfigurace přepínačů trasování.
Přidejte příkazy trasování do kódu aplikace.
Určete, kde se má výstup trasování zobrazit, a přidejte příslušné naslouchací komponenty. Další informace naleznete v tématu Vytvoření a inicializace naslouchání trasování.
Otestujte a laďte svou aplikaci a trasovací kód, který obsahuje.
Zkompilujte aplikaci do spustitelného kódu pomocí jednoho z následujících postupů:
Použijte nabídku Sestavení spolu se stránkou Ladění v dialogovém okně Stránky vlastností v Průzkumníku řešení. Tuto možnost použijte při kompilaci v sadě Visual Studio.
- nebo -
Pro kompilační metodu příkazového řádku použijte direktivy kompilátoru Trace a Debug . Další informace naleznete v tématu Podmíněná kompilace pomocí nástrojů Trace a Debug. Tuto možnost použijte při kompilaci z příkazového řádku.
Pokud během běhu dojde k problému, zapněte příslušný přepínač trasování. Další informace naleznete v tématu Konfigurace přepínačů trasování.
Kód trasování zapisuje trasovací zprávy do zadaného cíle, například do obrazovky, textového souboru nebo do protokolu událostí. Typ posluchače, který jste zahrnuli do sbírky Trace.Listeners, určuje cíl.
Analyzujte trasovací zprávy, abyste identifikovali a porozuměli problému v aplikaci.
Trasovací nástroje a distribuované aplikace
Když vytvoříte distribuovanou aplikaci, může být obtížné aplikaci otestovat způsobem, jakým se bude používat. Několik vývojových týmů má možnost otestovat všechny možné kombinace operačních systémů nebo webových prohlížečů (včetně všech lokalizovaných jazykových možností) nebo simulovat vysoký počet uživatelů, kteří budou mít k aplikaci přístup současně. Za těchto okolností nemůžete otestovat, jak distribuovaná aplikace bude reagovat na velké objemy, různá nastavení a jedinečné chování koncových uživatelů. Mnoho částí distribuované aplikace také nemá žádné uživatelské rozhraní, se kterým můžete pracovat přímo nebo zobrazit aktivitu těchto částí.
Můžete to však kompenzovat tím, že distribuovaným aplikacím umožníte popsat určité události zájmu správců systému, zejména věci, které se pokazí, instrumentací aplikace – tj. umístěním trasovacích příkazů do strategických umístění v kódu. Pokud se pak v době běhu vyskytne něco neočekávaného (například nadměrně pomalá doba odezvy), můžete určit pravděpodobnou příčinu.
Pomocí příkazů trasování se můžete vyhnout obtížné úloze zkoumání původního zdrojového kódu, jeho úpravě, rekompilování a pokusu o vyvolání běhové chyby v prostředí ladění. Mějte na paměti, že aplikaci můžete instrumentovat nejen k zobrazení chyb, ale také ke sledování výkonu.
Strategické umístění příkazů trasování
Při umísťování příkazů trasování pro použití během běhu musíte věnovat zvláštní pozornost. Je nutné zvážit, jaké informace o trasování budou pravděpodobně potřeba v nasazené aplikaci, aby byly pokryty všechny pravděpodobné scénáře trasování. Vzhledem k tomu, že aplikace, které používají trasování, se značně liší, neexistují však žádné obecné pokyny pro strategické umístění trasování. Další informace o umísťování příkazů trasování naleznete v tématu Postupy: Přidání příkazů trasování do kódu aplikace.
Výstup z trasování
Výstup trasování shromažďují objekty označované jako posluchače. Nasluchač je objekt, který přijímá výstup trasování a zapisuje ho do výstupního zařízení (obvykle okno, protokol nebo textový soubor). Když se vytvoří naslouchací proces trasování, obvykle se přidá do Trace.Listeners kolekce, což umožňuje naslouchacímu procesu přijímat veškerý výstup trasování.
Trasovací informace se vždy zapisuje alespoň do výchozího Trace výstupního cíle, tj DefaultTraceListener. Pokud jste z nějakého DefaultTraceListener důvodu odstranili naslouchací prvek bez přidání dalších posluchačů do kolekce Listeners, neobdržíte žádné trasovací zprávy. Další informace najdete v tématu Nasloucheče trasování.
Šest Debug členů a Trace metod, které zapisují informace o trasování, jsou uvedeny v následující tabulce.
| Metoda | Výstup |
|---|---|
Assert |
Zadaný text; nebo pokud není žádný text zadán, pak zásobník volání. Výstup se zapíše pouze v případě, že podmínka zadaná jako argument v Assert příkazu je nepravda. |
Fail |
Zadaný text; nebo pokud není žádný text zadán, pak zásobník volání. |
Write |
Zadaný text. |
WriteIf |
Zadaný text, pokud podmínka zadaná jako argument v WriteIf příkazu je splněna. |
WriteLine |
Zadaný text a návrat vozíku. |
WriteLineIf |
Zadaný text a znak pro návrat na začátek řádku, pokud je podmínka zadaná jako argument v příkazu WriteLineIf splněna. |
Všichni naslouchací procesy v Listeners kolekci obdrží zprávy popsané v tabulce výše, ale provedené akce se mohou lišit v závislosti na tom, jaký druh naslouchacího procesu zprávu obdrží. Například DefaultTraceListener zobrazí dialogové okno s tvrzením při obdržení Fail nebo při selhání Assert oznámení, ale TextWriterTraceListener jednoduše zapíše výstup do svého datového proudu.
Vlastní výsledky lze vytvořit implementací vlastního posluchače. Vlastní naslouchač trasování může například zobrazit zprávy v dialogovém okně či se připojit k databázi a přidat zprávy do tabulky. Všichni vlastní posluchače by měli podporovat šest výše uvedených metod. Další informace o vytváření naslouchacích procesů definovaných vývojářem najdete v referenčních informacích TraceListener k rozhraní .NET Framework.
Metody Write a WriteLine text, který zadáte, vždy zapisují.
Assert, WriteIfa WriteLineIf vyžadují logický argument, který určuje, zda zapisují zadaný text, a zapisují zadaný text pouze v případě, že je výraz pravdivý (pro WriteIf a WriteLineIf) nebo nepravda (pro Assert). Metoda Fail vždy zapíše zadaný text. Další informace naleznete v tématu Postupy: Přidání trasovacích příkazů do kódu aplikace a v referenční dokumentaci k rozhraní .NET Framework.
Aspekty zabezpečení
Pokud před nasazením aplikace ASP.NET nezakážete trasování a ladění, může aplikace odhalit informace o sobě, které by mohl zneužít škodlivý program. Další informace naleznete v tématech Postupy: Kompilace podmíněně pomocí trasování a ladění, Postupy: Kompilace a sestavování a Postupy: Vytvoření, inicializace a konfigurace přepínačů trasování. Ladění je také konfigurovatelné prostřednictvím Internet Information Services (IIS).
Viz také
- Trace
- TraceSource
- Kontrakty kódu
- Typy projektů jazyka C#, F# a Visual Basic
- Jak přidat trasovací příkazy do kódu aplikace
- Jak na to: Podmíněné kompilace s trasováním a laděním
- Postupy: Vytváření, inicializace a konfigurace přepínačů trasování
- Postupy: Vytváření a inicializace zdrojů trasování
- Postupy: Použití TraceSource a filtrů s posluchači trasování
- Moduly naslouchání trasování
- Přepínače trasování