Nyomkövetés és üzenetnaplózás
A TracingAndLogging minta bemutatja, hogyan engedélyezheti a nyomkövetést és az üzenetek naplózását. Az eredményként kapott nyomkövetések és üzenetnaplók a Service Trace Viewer eszközzel (SvcTraceViewer.exe) tekinthetők meg. Ez a minta az első lépéseken alapul.
Feljegyzés
A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.
Nyomkövetés
A Windows Communication Foundation (WCF) a névtérben definiált nyomkövetési mechanizmust System.Diagnostics használja. Ebben a nyomkövetési modellben a nyomkövetési adatokat az alkalmazások által implementált nyomkövetési források állítják elő. Az egyes forrásokat egy név azonosítja. A nyomkövetési felhasználók nyomkövetési figyelőket hoznak létre azokhoz a nyomkövetési forrásokhoz, amelyekhez információkat szeretnének lekérni. A nyomkövetési adatok fogadásához létre kell hoznia egy figyelőt a nyomkövetési forráshoz. A WCF-ben ezt úgy teheti meg, hogy hozzáadja a következő kódot a szolgáltatás vagy az ügyfél konfigurációs fájljába a szolgáltatásmodell nyomkövetési forrásának switchValue
beállításával:
<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>
A nyomkövetési forrásokról további információt a Nyomkövetés konfigurálása témakör Nyomkövetési forrás című szakaszában talál.
Tevékenység nyomon követése és propagálása
Az ActivityTracing
ügyfél és a szolgáltatás nyomkövetési forrásainak engedélyezése és propagateActivity
beállítása true
lehetővé teszi a system.ServiceModel
nyomkövetések korrelációját a feldolgozási logikai egységeken (tevékenységeken), a végpontokon belüli tevékenységek között (tevékenységátviteleken keresztül), valamint a több végpontot felölelő tevékenységek között (tevékenységazonosító propagálásával).
Ez a három mechanizmus (tevékenységek, átvitelek és propagálás) segíthet a hiba kiváltó okának gyorsabb megtalálásában a Service Trace Viewer eszközzel. További információ: A Service Trace Viewer használata a korrelált nyomkövetések és a hibaelhárítás megtekintéséhez.
A ServiceModel által biztosított nyomkövetést kiterjesztheti felhasználó által definiált tevékenységkövetések létrehozásával. A felhasználó által definiált tevékenységkövetés lehetővé teszi, hogy a felhasználó nyomkövetési tevékenységeket hozzon létre a következő módon:
A nyomkövetéseket logikai munkaegységekké csoportosítja.
Tevékenységek korrelálása átvitelekkel és propagálással.
Csökkenti a WCF-nyomkövetés teljesítményköltségét (például egy naplófájl lemezterület-költségét).
A felhasználó által definiált tevékenységkövetéssel kapcsolatos további információkért tekintse meg a Nyomkövetés kiterjesztése mintát.
Üzenetnaplózás
Az üzenetnaplózás bármely WCF-alkalmazás ügyfél- és szolgáltatásszolgáltatásában engedélyezhető. Az üzenetnaplózás engedélyezéséhez a következő kódot kell hozzáadnia az ügyfélhez vagy a szolgáltatáshoz:
<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>
Az üzenet rögzítésekor a nyomkövetés típusa attól függ, hogy az ügyfél vagy a kiszolgálón van-e nyomon követve. Az ügyfélnek küldött "Hozzáadás" üzenet például az ügyfél "TransportWrite" kategóriájában van nyomon követve, míg ugyanez az üzenet a szolgáltatás "TransportRead" kategóriájában van nyomon követve.
Konfigurálja a nyomkövetési figyelőt úgy, hogy hozzáadja a következő kódot az System.Diagnostics ügyfél App.config fájljának vagy a szolgáltatás Web.config fájljának szakaszához:
<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>
Az üzeneteket XML formátumban naplózza a rendszer a konfigurációs fájlban megadott célkönyvtárban.
Feljegyzés
A nyomkövetési fájlok nem jönnek létre a naplókönyvtár kezdeti létrehozása nélkül. Győződjön meg arról, hogy a C:\logs\ könyvtár létezik, vagy adjon meg egy másik naplózási könyvtárat a figyelő konfigurációjában. További információért tekintse meg a dokumentum végén található kezdeti telepítési utasításokat.
Az üzenetnaplózással kapcsolatos további információkért tekintse meg az Üzenetnaplózás konfigurálása témakört.
A minta beállítása, összeállítása és futtatása
Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták egyszeri beállítási eljárását.
A nyomkövetési és üzenetnaplózási minta futtatása előtt hozza létre a szolgáltatás C:\logs\ könyvtárát a .svclog-fájlok írásához. A címtár neve a konfigurációs fájlban van definiálva a naplózandó nyomkövetések és üzenetek elérési útjaként, és módosítható. Adjon a felhasználó hálózati szolgáltatásnak írási hozzáférést a naplók könyvtárához.
A megoldás C#, C++ vagy Visual Basic .NET kiadásának létrehozásához kövesse a Windows Communication Foundation-minták készítésének utasításait.
Ha a mintát egy- vagy számítógépközi konfigurációban szeretné futtatni, kövesse a Windows Communication Foundation-minták futtatásával kapcsolatos utasításokat.