FileLoggingSession Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa el destino de los mensajes registrados de las instancias de 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
- Herencia
- Atributos
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Comentarios
Usa la clase FileLoggingSession para registrar mensajes y datos en un archivo continuamente a medida que se ejecuta la aplicación. Puede ver los archivos de registro mediante Windows Performance Toolkit (WPT) y otras utilidades como tracerpt.exe.
Agregue instancias de LoggingChannel a fileLoggingSession y llame a los métodos de instancia FileLoggingSession para quitar canales, eliminar y realizar otras operaciones. El número de canales no está limitado actualmente.
Nota
En Windows Server 2012 R2 y Windows 8.1, cada aplicación está limitada a 4 canales activos y los canales deben tener nombres únicos.
La clase FileLoggingSession envía mensajes registrados a archivos de disco cuando se rellena un búfer o cuando el usuario llama a CloseAndSaveToFileAsync. La clase FileLoggingSession usa el registro secuencial, lo que significa que todos los mensajes se envían a un archivo de disco y se conserva un historial secuencial de mensajes. Esto es distinto de la clase LoggingSession , que envía mensajes registrados al disco a petición, es decir, cuando la aplicación detecta un problema y guarda los mensajes en memoria para su análisis.
Use la clase FileLoggingSession cuando sepa que todos los mensajes deben guardarse, normalmente durante un largo período de tiempo y cuando la aplicación no se puede cargar con los pasos de ahorro a petición. Al igual que la clase LoggingSession , las instancias de LoggingChannel se agregan a una instancia fileLoggingSession y la instancia fileLoggingSession tiene métodos para quitar canales y eliminar. Las instancias de FileLoggingSession se inicializan con un delegado en una nueva devolución de llamada de archivo, que notifica a la aplicación cuando se ha producido una sustitución de archivos de registro. La característica invoca al delegado cuando el archivo de registro interno actual ha alcanzado la capacidad y se crea un nuevo archivo para el registro secuencial continuado. También se puede llamar a la devolución de llamada del delegado en límites de suspensión o cuando se elimina FileLoggingSession .
Cuando se invoca el evento LogFileGenerated , la aplicación recibe un StorageFile que representa el archivo de registro cerrado ahora. La aplicación puede reenviar el archivo de registro para su procesamiento de forma definida por la aplicación. Después de esto, la sesión continúa registrando en un archivo de registro actual recién creado y abierto ahora. Cuando este archivo de registro alcanza la capacidad, el delegado de devolución de llamada se invoca de nuevo para el nuevo archivo y el proceso se repite.
Cuando haya terminado de registrar eventos, llame a CloseAndSaveToFileAsync para obtener el último archivo de registro desde el último archivo de registro puede estar abierto si aún no ha alcanzado la capacidad. También puede usar CloseAndSaveToFileAsync para cerrar la sesión y obtener acceso al último archivo de registro. Tenga en cuenta que si el último archivo de registro estaba vacío o si el método LogFileGenerated ya ha notificado todos los archivos de registro, el método CloseAndSaveToFileAsync devolverá null.
Los archivos de registro se crean en la carpeta ApplicationData\Logs .
El nombre de cada archivo de registro se basa en el nombre de la sesión más un índice. El índice se restablece cada vez que se crea una nueva sesión. Cada vez que un archivo de registro alcanza el tamaño máximo, se cierra, se incrementa el índice y se abre un nuevo archivo de registro con el nuevo índice. (Como consecuencia, cada vez que reinicie una aplicación, comenzará a sobrescribir los archivos de registro generados por la instancia anterior de la aplicación).
Puedes agregar un controlador para el evento LogFileGenerated para que se notifique a la aplicación cada vez que se cierre un archivo de registro.
Si no usa el evento LogFileGenerated o el método CloseAndSaveToFileAsync , FileLoggingSession no eliminará los archivos de registro obsoletos (aunque una nueva sesión puede sobrescribir los archivos generados por una sesión anterior). La aplicación es responsable de localizar y limpiar los archivos de registro según sea necesario.
Antes de proporcionar un archivo de registro a una aplicación mediante el evento LogFileGenerated o el método CloseAndSaveToFileAsync , se cambia el nombre a un nombre de archivo de registro especial. Siempre se usa el mismo nombre de archivo de registro, por lo que los registros nuevos sobrescribirán los registros anteriores. De este modo, los métodos LogFileGenerated y CloseAndSaveToFileAsync ayudan a evitar que los archivos de registro obsoletos desperdician espacio en la carpeta ApplicationData.
FileLoggingSession cerrará el archivo de registro actual e iniciará un nuevo archivo de registro cuando el archivo de registro actual alcance los 256 KB.
Constructores
FileLoggingSession(String) |
Inicializa una nueva instancia de la clase FileLoggingSession . |
Propiedades
Name |
Obtiene el nombre de la sesión de registro. |
Métodos
AddLoggingChannel(ILoggingChannel) |
Agrega un canal de registro a la sesión de registro actual. |
AddLoggingChannel(ILoggingChannel, LoggingLevel) |
Agrega un canal de registro a la sesión de registro actual. El canal de registro solo acepta eventos que tienen un nivel de registro en el nivel de registro especificado o superior al nivel de registro especificado. |
Close() |
Finaliza la sesión de registro actual. |
CloseAndSaveToFileAsync() |
Finaliza la sesión de registro actual y la guarda en un archivo. |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. |
RemoveLoggingChannel(ILoggingChannel) |
Quita el canal de registro especificado de la sesión de registro actual. |
Eventos
LogFileGenerated |
Se genera cuando se guarda un archivo de registro. |