Trasování a protokolování zpráv
Ukázka TrasováníAndLogging ukazuje, jak povolit protokolování trasování a zpráv. Výsledné trasování a protokoly zpráv se zobrazují pomocí nástroje Service Trace Viewer (SvcTraceViewer.exe). Tato ukázka je založená na začínáme.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Sledování
Windows Communication Foundation (WCF) používá mechanismus trasování definovaný v System.Diagnostics oboru názvů. V tomto modelu trasování se data trasování vytvářejí zdroji trasování, které aplikace implementují. Každý zdroj je identifikován názvem. Příjemci trasování vytvářejí naslouchací procesy trasování pro zdroje trasování, pro které chtějí načíst informace. Pokud chcete přijímat data trasování, musíte vytvořit naslouchací proces pro zdroj trasování. Ve WCF to lze provést přidáním následujícího kódu do konfiguračního souboru služby nebo klienta nastavením zdroje switchValue
trasování modelu služby:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-service.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Další informace o zdrojích trasování najdete v části Zdroj trasování v tématu Konfigurace trasování .
Trasování a šíření aktivit
Když jste povolili ActivityTracing
a propagateActivity
nastavili true
v system.ServiceModel
zdrojích trasování pro klienta i službu, poskytují korelaci trasování v rámci logických jednotek zpracování (aktivit), mezi aktivitami v rámci koncových bodů (prostřednictvím přenosů aktivit) a mezi aktivitami zahrnujícími více koncových bodů (prostřednictvím šíření ID aktivity).
Tyto tři mechanismy (aktivity, přenosy a šíření) vám můžou pomoct rychleji najít původní příčinu chyby pomocí nástroje Service Trace Viewer. Další informace najdete v tématu Použití prohlížeče trasování služby pro zobrazení korelovaných trasování a řešení potíží.
Trasování, které poskytuje ServiceModel, je možné rozšířit vytvořením trasování aktivit definovaných uživatelem. Trasování aktivit definované uživatelem umožňuje uživateli vytvářet aktivity trasování pro:
Seskupte trasování do logických jednotek práce.
Korelují aktivity prostřednictvím přenosů a šíření.
Snížení nákladů na výkon trasování WCF (například náklady na místo na disku souboru protokolu).
Další informace o trasování aktivity definované uživatelem najdete v ukázce rozšíření trasování .
Protokolování zpráv
Protokolování zpráv lze povolit v klientovi i službě libovolné aplikace WCF. Pokud chcete povolit protokolování zpráv, musíte do klienta nebo služby přidat následující kód:
<configuration>
<system.serviceModel>
<diagnostics>
<!-- Enable Message Logging here. -->
<!-- log all messages received or sent at the transport or service model levels -->
<messageLogging logEntireMessage="true"
maxMessagesToLog="300"
logMessagesAtServiceLevel="true"
logMalformedMessages="true"
logMessagesAtTransportLevel="true" />
</diagnostics>
</system.serviceModel>
</configuration>
Když se zaznamená zpráva, typ trasování závisí na tom, jestli se trasuje u klienta nebo serveru. Například zpráva "Přidat", která je odeslána klientovi, je trasována v kategorii TransportWrite v klientovi, zatímco stejná zpráva je trasována v kategorii TransportRead ve službě.
Nakonfigurujte naslouchací proces trasování přidáním následujícího kódu do System.Diagnostics části souboru App.config klienta nebo souboru Web.config služby:
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml" />
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml" />
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="C:\logs\TracingAndLogging-client.svclog" type="System.Diagnostics.XmlWriterTraceListener"
name="xml" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Zprávy jsou protokolovány ve formátu XML v cílovém adresáři zadaném v konfiguračním souboru.
Poznámka:
Trasovací soubory se nevytvořily bez počátečního vytvoření adresáře protokolu. Ujistěte se, že adresář C:\logs\ existuje, nebo v konfiguraci naslouchacího procesu zadejte alternativní adresář protokolování. Další informace najdete v úvodních pokynech k nastavení na konci tohoto dokumentu.
Další informace o protokolování zpráv naleznete v tématu Konfigurace protokolování zpráv.
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Před spuštěním ukázky trasování a protokolování zpráv vytvořte adresář C:\logs\ pro službu pro zápis souborů .svclog do. Název tohoto adresáře je definován v konfiguračním souboru jako cesta pro trasování a zprávy, které se mají protokolovat a lze je změnit. Dejte uživatelské síťové službě přístup k zápisu do adresáře protokolů.
Pokud chcete sestavit edici C#, C++ nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.