Utilisation des fichiers journaux
Pour ouvrir un fichier journal à des fins de lecture, appelez PdhOpenQuery et spécifiez un chemin d’accès au fichier journal. Pour ouvrir un fichier journal à écrire, vous devez appeler PdhOpenLog. Pour fermer un fichier journal, appelez PdhCloseQuery ou PdhCloseLog selon la fonction que vous avez utilisée pour ouvrir le fichier journal.
Lecture à partir d’un fichier journal
La lecture des données de performances à partir d’un fichier journal est identique à la lecture de données à partir d’une source en temps réel : vous ouvrez une requête, ajoutez des compteurs à la requête et appelez PdhCollectQueryData pour collecter un exemple à partir du fichier journal. PdhCollectQueryData retourne PDH_NO_MORE_DATA lorsque vous atteignez la fin du fichier journal.
Chaque exemple dans le fichier journal contient un horodatage de la date à laquelle il a été initialement collecté et écrit dans le fichier journal. Pour récupérer l’horodatage du premier et du dernier échantillon dans le fichier journal, appelez la fonction PdhGetDataSourceTimeRange . Si vous souhaitez limiter les exemples que vous lisez dans le journal à un intervalle de temps spécifique, consultez Définition d’un intervalle de temps pour une requête.
Si vous ne savez pas quels objets et compteurs de performances existent dans le fichier journal, vous pouvez appeler PdhEnumObjects pour déterminer la liste des objets. Dans un objet, vous pouvez appeler PdhEnumObjectItems ou PdhExpandWildCardPath pour récupérer une liste des instances et compteurs de l’objet contenus dans le fichier journal.
Si vous appelez PdhEnumObjectItems, utilisez les instance et les listes de compteurs pour créer un chemin d’accès pour chaque combinaison possible de instance et de compteur. Lorsque vous appelez PdhAddCounter pour ajouter le compteur à la requête, la fonction échoue si le fichier journal ne contient pas la combinaison donnée.
Si vous utilisez PdhExpandWildCardPath, vous pouvez créer un chemin qui contient un caractère générique pour le nom et le compteur instance, par exemple \object(*)\*. La fonction retourne PDH_INVALID_PATH si l’objet ne contient pas de instance. Dans ce cas, appelez PdhExpandWildCardPath à l’aide d’un caractère générique pour counter uniquement, par exemple, \object\*.
Les systèmes d’exploitation plus récents peuvent lire les fichiers journaux qui ont été générés sur des systèmes d’exploitation plus anciens ; Toutefois, les fichiers journaux créés sur Windows Vista et les systèmes d’exploitation ultérieurs ne peuvent pas être lus sur les systèmes d’exploitation antérieurs.
Pour obtenir un exemple qui lit des données à partir d’un fichier journal, consultez Lecture des données de performances à partir d’un fichier journal.
Lecture à partir de plusieurs fichiers journaux
Si vous devez créer une requête qui lit à partir de plusieurs fichiers journaux, appelez pdhBindInputDataSource pour lier les fichiers journaux. Vous devez ensuite utiliser des fonctions PDH qui se terminent par « H », par exemple , PdhOpenQueryH.
Écriture dans un fichier journal
Avant d’écrire dans un fichier journal, appelez PdhOpenQuery pour créer une requête et spécifier la source des données de performances, soit des données en temps réel, soit un fichier journal. Ensuite, ajoutez les compteurs que vous souhaitez interroger.
Pour ouvrir le fichier de destination, appelez PdhOpenLog. Spécifiez la requête lorsque vous ouvrez le fichier journal. Pour collecter les données de performances et les écrire dans le fichier journal, appelez PdhUpdateLog.
Si les données du compteur sont écrites dans un fichier journal délimité par des virgules (.csv) ou délimité par des tabulations (.tsv) et que le chemin contient un instance générique, le chemin est développé et seules les instances qui existent au moment où le chemin est développé sont incluses dans le fichier journal. Toutefois, pour les fichiers journaux binaires (.blg) ou SQL, le caractère générique n’est pas développé afin que le fichier journal contienne des instances créées pendant la journalisation.
Pour obtenir un exemple qui écrit des données dans un fichier journal, consultez Écriture de données de performances dans un fichier journal.
Compression d’un fichier journal
Vous pouvez utiliser la fonction PdhComputeCounterStatistics pour compresser un fichier journal. Par exemple, lisez dix enregistrements à partir d’un fichier journal, appelez PdhComputeCounterStatistics pour calculer la valeur moyenne, puis écrivez la valeur moyenne dans un fichier journal de sortie.
La rubrique suivante fournit des informations supplémentaires sur l’utilisation d’un fichier journal.