Enregistrer et afficher les événements TraceLogging
Vous pouvez utiliser de nombreux outils pour collecter et décoder des événements ETW TraceLogging.
- Pour contrôler la session de suivi, utilisez des outils tels que WPR, tracelog ou traceview.
- Pour décoder des événements d’une session, utilisez des outils tels que WPA, tracefmt ou traceview.
Cet exemple montre comment enregistrer des événements TraceLogging avec l’enregistreur de performances Windows (WPR) et les afficher avec windows Analyseur de performances (WPA).
Prérequis
- Windows 10
- La version Windows 10 de l’Enregistreur de performances Windows (WPR) et la version Windows 10 de Windows Analyseur de performances (WPA) qui fait partie du Kit d’évaluation et de déploiement Windows® (Windows ADK).
Important
Les traces capturées avec TraceLogging doivent être capturées avec la version Windows 10 de l’Enregistreur de performances Windows et consultées avec la version Windows 10 de Windows Analyseur de performances. Si vous ne parvenez pas à capturer ou décoder vos événements, vérifiez que vous utilisez la version Windows 10 des outils.
1. Capturer des données de trace avec WPR
Pour capturer une trace sur Windows Phone, consultez Capturer les événements TraceLogging sur Windows Phone ci-dessous.
Créez un profil d’enregistreur de performances Windows (.wprp) afin de pouvoir utiliser WPR pour capturer vos événements tracelogging.
Créez un . Fichier WPRP
Utilisez l’exemple WPRP suivant avec l’exemple de code natif dans le démarrage rapide TraceLogging C/C++ ou l’exemple managé dans le guide de démarrage rapide géré TraceLogging. Si vous journaliser des événements à partir de votre propre fournisseur, remplacez les
TODO
sections par les valeurs appropriées pour votre fournisseur.Important
Si vous utilisez le démarrage rapide TraceLogging C/C++, spécifiez le GUID du fournisseur dans l’attribut
Name
de l’élément<EventProvider>
. Par exemple :<EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="0205c616-cf97-5c11-9756-56a2cee02ca7" />
. Si vous utilisez le démarrage rapide traceLogging managé, spécifiez le nom du fournisseur préfacé par*
dans l’attributName
de l’élément<EventProvider />
. Par exemple :<EventProvider Name="*SimpleTraceLoggingProvider" />
.Exemple de fichier WPRP :
<?xml version="1.0" encoding="utf-8"?> <!-- TODO: 1. Find and replace "SimpleTraceLoggingProvider" with the name of your provider. 2. See TODO below to update GUID for your event provider --> <WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" Copyright="Microsoft Corporation" Company="Microsoft Corporation"> <Profiles> <EventCollector Id="EventCollector_SimpleTraceLoggingProvider" Name="SimpleTraceLoggingProvider"> <BufferSize Value="64" /> <Buffers Value="4" /> </EventCollector> <!-- TODO: 1. Update Name attribute in EventProvider xml element with your provider GUID, eg: Name="0205c616-cf97-5c11-9756-56a2cee02ca7". Or if you specify an EventSource C# provider or call TraceLoggingRegister(...) without a GUID, use star (*) before your provider name, eg: Name="*MyEventSourceProvider" which will enable your provider appropriately. 2. This sample lists one EventProvider xml element and references it in a Profile with EventProviderId xml element. For your component wprp, enable the required number of providers and fix the Profile xml element appropriately --> <EventProvider Id="EventProvider_SimpleTraceLoggingProvider" Name="*SimpleTraceLoggingProvider" /> <Profile Id="SimpleTraceLoggingProvider.Verbose.File" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" LoggingMode="File" DetailLevel="Verbose"> <Collectors> <EventCollectorId Value="EventCollector_SimpleTraceLoggingProvider"> <EventProviders> <!-- TODO: 1. Fix your EventProviderId with Value same as the Id attribute on EventProvider xml element above --> <EventProviderId Value="EventProvider_SimpleTraceLoggingProvider" /> </EventProviders> </EventCollectorId> </Collectors> </Profile> <Profile Id="SimpleTraceLoggingProvider.Light.File" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="File" DetailLevel="Light" /> <Profile Id="SimpleTraceLoggingProvider.Verbose.Memory" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Verbose" /> <Profile Id="SimpleTraceLoggingProvider.Light.Memory" Name="SimpleTraceLoggingProvider" Description="SimpleTraceLoggingProvider" Base="SimpleTraceLoggingProvider.Verbose.File" LoggingMode="Memory" DetailLevel="Light" /> </Profiles> </WindowsPerformanceRecorder>
Enregistrez le fichier avec un . Extension de nom de fichier WPRP.
Démarrez la capture à l’aide de WPR à partir d’une fenêtre d’invite de commandes avec élévation de privilèges (exécuter en tant qu’administrateur).
< chemin d’accès à wpr>\wpr.exe -start GeneralProfile -start TraceLoggingProvider.wprp
Conseil
À des fins de profilage général, vous pouvez également ajouter -start GeneralProfile à la ligne de commande wpr.exe pour capturer les événements système ainsi que les événements de votre fournisseur. Si vous souhaitez uniquement rassembler vos événements, omettez -start GeneralProfile.
Exécutez l’application qui contient vos événements.
Arrêtez la capture de traces.
< chemin d’accès à wpr>\wpr.exe -stop TraceCaptureFile.etl description
Conseil
Si vous avez ajouté -start GeneralProfile pour collecter des événements système, ajoutez -stop GeneralProfile à la ligne de commandewpr.exe ci-dessus.
2. Capturer les événements TraceLogging sur Windows Phone
Démarrez le journal de suivi pour capturer des événements à partir de votre fournisseur.
cmdd tracelog -start test -f c:\test.etl -guid #providerguid
Exécutez votre scénario de test pour journaliser les événements.
Arrêter la capture de trace.
cmdd tracelog -stop test
Fusionnez les résultats de la trace système avec vos résultats de trace.
cmdd xperf -merge c:\test.etl c:\testmerged.etl
Récupérez le fichier journal fusionné.
getd c:\testmerged.etl
3. Afficher les données TraceLogging à l’aide de Windows Analyseur de performances
WPA est actuellement la seule visionneuse que vous pouvez utiliser pour afficher les fichiers de trace (.etl).
Démarrez WPA.
<chemin d’accès à wpr>\wpa.exe traceLoggingResults.etl
Chargez le fichier de trace (.etl) que vous avez spécifié dans la commande wpa.exe ci-dessus, par exemple traceLoggingResults.etl.
Affichez les événements de votre fournisseur. Dans le Explorer WPA Graph, développez Activité système.
Double-cliquez dans le volet Événements génériques pour afficher les événements dans le volet Analyse .
Dans le volet Analyse, recherchez les événements de votre fournisseur pour vérifier que TraceLogging fonctionne.
Dans la colonne Nom du fournisseur de la table Événements génériques , recherchez et sélectionnez la ligne avec le nom de votre fournisseur.
Si vous avez plusieurs fournisseurs à trier, cliquez sur l’en-tête de colonne pour trier par nom de colonne, ce qui peut faciliter la recherche de votre fournisseur.
Lorsque vous trouvez votre fournisseur, cliquez avec le bouton droit sur le nom et sélectionnez Filtrer pour la sélection.
L’événement pour SimpleTraceLoggingProvider et sa valeur s’affichent dans le volet inférieur de la fenêtre Analyse. Développez le nom du fournisseur pour voir les événements.
Pour plus d’informations sur l’utilisation de WPA, consultez Windows Analyseur de performances.
Résumé et étapes suivantes
Le processus d’enregistrement et d’affichage des événements ETW à l’aide de WPR et WPA s’applique également aux événements TraceLogging.
Pour obtenir d’autres exemples, consultez Exemples de suivi C/C++ .