À propos de TraceLogging

TraceLogging est un système de journalisation des événements qui peuvent être décodés sans manifeste. Sur Windows, TraceLogging est utilisé dans les composants en mode utilisateur et en mode noyau pour générer des événements de suivi d’événements pour Windows (ETW ). TraceLogging s’appuie sur le suivi d’événements pour Windows (ETW) et fournit un moyen simplifié d’instrumenter le code.

Le suivi d’événements pour Windows (ETW) a été introduit avec Windows 2000 et mis à jour dans Windows Vista. TraceLogging s’appuie sur les API ETW Windows Vista. Les fournisseurs peuvent utiliser TraceLogging lors de l’exécution sur Windows Vista ou une version ultérieure. Les contrôleurs de trace ETW existants peuvent être utilisés pour contrôler les fournisseurs TraceLogging et capturer des traces à l’aide des API Windows Vista. Les décodeurs de trace ETW existants qui utilisent des API de décodage TDH peuvent décoder des événements TraceLogging lors de l’exécution sur Windows 10 ou une version ultérieure.

TraceLogging offre plusieurs avantages :

  • Simplicité de définition d’événements directement dans le code, similaire à WPP, mais sans avoir besoin d’un outil de prétraitement.
  • Données structurées : champs nommés avec des types, prise en charge des tableaux et des structures.
  • Corrélation d’événements par le biais d’activités ETW.
  • Toutes les informations de décodage de l’événement étant incluses dans l’événement lui-même, aucun fichier supplémentaire n’est nécessaire pour décoder.
  • Les API du fournisseur d’événements TraceLogging sont disponibles pour C/C++, .NET et Windows Runtime (WinRT). Prise en charge externe disponible pour Python, Rust, etc.

Bien que TraceLogging offre plusieurs avantages et doit être pris en compte pour le nouveau suivi, l’ETW basé sur un manifeste est toujours approprié pour de nombreux scénarios.

  • Si vos événements ciblent l’un des journaux Windows hérités dans le journal des événements Windows (par exemple, les journaux système ou d’application), continuez à utiliser l’ETW basé sur le manifeste.
  • Si la taille du fichier de trace est une considération importante, continuez à utiliser l’ETW basé sur le manifeste. Les événements TraceLogging incluent les chaînes d’événement (nom du fournisseur, nom d’événement et noms de champs) à l’intérieur de chaque événement et sont généralement plus grands que l’événement basé sur le manifeste équivalent.
  • Si vous avez un investissement important dans une technologie de trace existante, il n’est pas nécessaire de passer à TraceLogging.
  • Sinon, envisagez d’utiliser TraceLogging, car il offre une expérience plus simple pour le développeur et le consommateur d’événements.

Vue d’ensemble générale de l’API

Il existe plusieurs API TraceLogging, chacune ciblant des publics de développeurs différents.

  • Si vous devez générer des événements à partir de code C ou C++, TraceLoggingProvider.h fournit une API efficace pour générer des événements TraceLogging à partir du code en mode utilisateur ou en mode noyau. Les événements doivent être définis au moment de la compilation.
  • Sinon, si vous devez générer des événements à partir du code .NET, la classe EventSource .NET prend en charge la génération d’événements ETW basés sur un manifeste et sur TraceLogging. Les événements doivent être définis au moment de la compilation.
  • Sinon, si vous utilisez le Windows Runtime (WinRT), LoggingChannel a été étendu dans Windows 10 pour journaliser les événements TraceLogging.
  • Sinon, vous pourrez peut-être utiliser une option prise en charge par la communauté, telle que TraceLoggingDynamic.

À propos du suivi d’événements