FileLoggingSession Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente la destination des messages enregistrés à partir d’instances LoggingChannel .
public ref class FileLoggingSession sealed : IFileLoggingSession, IClosable
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class FileLoggingSession final : IFileLoggingSession, IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class FileLoggingSession final : IFileLoggingSession, IClosable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class FileLoggingSession : System.IDisposable, IFileLoggingSession
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Foundation.Diagnostics.IFileLoggingSessionFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class FileLoggingSession : System.IDisposable, IFileLoggingSession
function FileLoggingSession(name)
Public NotInheritable Class FileLoggingSession
Implements IDisposable, IFileLoggingSession
- Héritage
- Attributs
- Implémente
Configuration requise pour Windows
Famille d’appareils |
Windows 10 (introduit dans 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
|
Remarques
Utilisez la classe FileLoggingSession pour journaliser des messages et des données dans un fichier en continu pendant l’exécution de votre application. Vous pouvez afficher les fichiers journaux à l’aide de Windows Performance Toolkit (WPT) et d’autres utilitaires tels que tracerpt.exe.
Ajoutez des instances LoggingChannel à une fileLoggingSession et appelez les méthodes FileLoggingSession instance pour supprimer des canaux, supprimer et effectuer d’autres opérations. Le nombre de canaux n’est actuellement pas limité.
Notes
Dans Windows Server 2012 R2 et Windows 8.1, chaque application est limitée à 4 canaux actifs, et les canaux doivent avoir des noms uniques.
La classe FileLoggingSession envoie des messages enregistrés aux fichiers disque lorsqu’une mémoire tampon est remplie ou lorsque l’utilisateur appelle CloseAndSaveToFileAsync. La classe FileLoggingSession utilise la journalisation séquentielle, ce qui signifie que tous les messages sont envoyés à un fichier disque et qu’un historique séquentiel des messages est conservé. Cela est différent de la classe LoggingSession , qui envoie les messages enregistrés sur disque à la demande, c’est-à-dire lorsque l’application détecte un problème et enregistre les messages en mémoire pour analyse.
Utilisez la classe FileLoggingSession lorsque vous savez que tous les messages doivent être enregistrés, généralement sur une longue période, et lorsque l’application ne peut pas être contrainte d’étapes d’enregistrement à la demande. Comme la classe LoggingSession, les instances LoggingChannel sont ajoutées à un instance FileLoggingSession, et l’instance FileLoggingSession a des méthodes pour supprimer les canaux et supprimer. Les instances FileLoggingSession sont initialisées avec un délégué vers un nouveau rappel de fichier, qui avertit l’application lorsqu’une substitution de fichier journal s’est produite. La fonctionnalité appelle le délégué lorsque le fichier journal interne actuel a atteint sa capacité et qu’un nouveau fichier est en cours de création pour la journalisation séquentielle continue. Le rappel délégué peut également être appelé au moment de suspendre les limites ou lorsque fileLoggingSession est supprimé.
Lorsque l’événement LogFileGenerated est appelé, l’application reçoit un StorageFile qui représente le fichier journal maintenant fermé. L’application peut transférer le fichier journal pour traitement d’une manière définie par l’application. Après cela, la session continue la journalisation dans un fichier journal actuel nouvellement créé et maintenant ouvert. Lorsque ce fichier journal atteint la capacité, le délégué de rappel est appelé à nouveau pour le nouveau fichier et le processus se répète.
Lorsque vous avez terminé la journalisation des événements, appelez CloseAndSaveToFileAsync afin d’obtenir le dernier fichier journal, car le dernier fichier journal peut être toujours ouvert s’il n’a pas encore atteint sa capacité. Vous pouvez également utiliser CloseAndSaveToFileAsync pour fermer la session et accéder au dernier fichier journal. Notez que si le dernier fichier journal était vide ou si tous les fichiers journaux ont déjà été signalés par la méthode LogFileGenerated , la méthode CloseAndSaveToFileAsync retourne null.
Les fichiers journaux sont créés dans le dossier ApplicationData\Logs .
Le nom de chaque fichier journal est basé sur le nom de la session plus un index. L’index est réinitialisé chaque fois qu’une nouvelle session est créée. Chaque fois qu’un fichier journal atteint la taille maximale, il est fermé, l’index est incrémenté et un nouveau fichier journal est ouvert à l’aide du nouvel index. (Par conséquent, chaque fois que vous redémarrez une application, elle commence à remplacer les fichiers journaux générés par le instance précédent de l’application.)
Vous pouvez ajouter un gestionnaire pour l’événement LogFileGenerated afin que votre application soit avertie chaque fois qu’un fichier journal est fermé.
Si vous n’utilisez pas l’événement LogFileGenerated ou la méthode CloseAndSaveToFileAsync , fileLoggingSession ne supprimera pas les fichiers journaux obsolètes (bien qu’une nouvelle session puisse remplacer les fichiers générés par une session précédente). Votre application est responsable de la localisation et du nettoyage des fichiers journaux en fonction des besoins.
Avant qu’un fichier journal ne soit fourni à une application via l’événement LogFileGenerated ou la méthode CloseAndSaveToFileAsync , il est renommé en nom de fichier journal spécial. Le même nom de fichier journal est toujours utilisé, de sorte que les nouveaux journaux remplacent les anciens journaux. De cette façon, l’événement LogFileGenerated et les méthodes CloseAndSaveToFileAsync empêchent les fichiers journaux obsolètes de gaspiller de l’espace dans le dossier ApplicationData.
FileLoggingSession ferme le fichier journal actuel et démarre un nouveau fichier journal lorsque le fichier journal actuel atteint 256 Ko.
Constructeurs
FileLoggingSession(String) |
Initialise une nouvelle instance de la classe FileLoggingSession. |
Propriétés
Name |
Obtient le nom de la session de journalisation. |
Méthodes
AddLoggingChannel(ILoggingChannel) |
Ajoute un canal de journalisation à la session de journalisation actuelle. |
AddLoggingChannel(ILoggingChannel, LoggingLevel) |
Ajoute un canal de journalisation à la session de journalisation actuelle. Le canal de journalisation accepte uniquement les événements dont le niveau de journalisation est supérieur ou égal au niveau de journalisation spécifié. |
Close() |
Met fin à la session de journalisation actuelle. |
CloseAndSaveToFileAsync() |
Met fin à la session de journalisation actuelle et l’enregistre dans un fichier. |
Dispose() |
Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées. |
RemoveLoggingChannel(ILoggingChannel) |
Supprime le canal de journalisation spécifié de la session de journalisation actuelle. |
Événements
LogFileGenerated |
Déclenché lors de l’enregistrement d’un fichier journal. |