Compartilhar via


FileLoggingSession Classe

Definição

Representa o destino de mensagens registradas de instâncias do 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
Herança
Object Platform::Object IInspectable FileLoggingSession
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Comentários

Use a classe FileLoggingSession para registrar mensagens e dados em um arquivo continuamente à medida que o aplicativo é executado. Você pode exibir os arquivos de log usando o WPT (Windows Performance Toolkit) e outros utilitários, como tracerpt.exe.

Adicione instâncias do LoggingChannel a um FileLoggingSession e chame métodos de instância FileLoggingSession para remover canais, descartar e executar outras operações. No momento, o número de canais não é limitado.

Observação

Em Windows Server 2012 R2 e Windows 8.1, cada aplicativo é limitado a 4 canais ativos e os canais devem ter nomes exclusivos.

A classe FileLoggingSession envia mensagens registradas para arquivos de disco quando um buffer é preenchido ou quando o usuário chama CloseAndSaveToFileAsync. A classe FileLoggingSession usa registro em log sequencial, o que significa que todas as mensagens são enviadas para um arquivo de disco e um histórico sequencial de mensagens é retido. Isso é diferente da classe LoggingSession , que envia mensagens registradas para o disco sob demanda, ou seja, quando o aplicativo detecta um problema e salva as mensagens na memória para análise.

Use a classe FileLoggingSession quando souber que todas as mensagens precisam ser salvas, geralmente por um longo período de tempo e quando o aplicativo não pode ser sobrecarregado com as etapas de salvamento sob demanda. Assim como a classe LoggingSession , as instâncias do LoggingChannel são adicionadas a uma instância fileloggingSession e a instância FileLoggingSession tem métodos para remover canais e descartar. As instâncias fileLoggingSession são inicializadas com um delegado para um novo retorno de chamada de arquivo, o que notifica o aplicativo quando ocorreu uma substituição de arquivo de log. O recurso invoca o delegado quando o arquivo de log interno atual atinge a capacidade e um novo arquivo está sendo criado para registro em log sequencial contínuo. O retorno de chamada delegado também pode ser chamado em limites de suspensão ou quando FileLoggingSession é descartado.

Quando o evento LogFileGenerated é invocado, o aplicativo recebe um StorageFile que representa o arquivo de log agora fechado. O aplicativo pode encaminhar o arquivo de log para processamento de maneira definida pelo aplicativo. Depois disso, a sessão continua fazendo logon em um arquivo de log atual recém-criado e agora aberto. Quando esse arquivo de log atinge a capacidade, o delegado de retorno de chamada é invocado novamente para o novo arquivo e o processo se repete.

Quando terminar de registrar eventos em log, chame CloseAndSaveToFileAsync para obter o último arquivo de log, pois o último arquivo de log ainda poderá estar aberto se ainda não tiver atingido a capacidade. Você também pode usar CloseAndSaveToFileAsync para fechar a sessão e obter acesso ao último arquivo de log. Observe que, se o último arquivo de log estiver vazio ou se todos os arquivos de log já tiverem sido relatados pelo método LogFileGenerated , o método CloseAndSaveToFileAsync retornará nulo.

Os arquivos de log são criados na pasta ApplicationData\Logs .

O nome de cada arquivo de log é baseado no nome da sessão mais um índice. O índice é redefinido sempre que uma nova sessão é criada. Sempre que um arquivo de log atinge o tamanho máximo, ele é fechado, o índice é incrementado e um novo arquivo de log é aberto usando o novo índice. (Como consequência, cada vez que você reiniciar um aplicativo, ele começará a substituir os arquivos de log gerados pela instância anterior do aplicativo.)

Você pode adicionar um manipulador para o evento LogFileGenerated para que seu aplicativo seja notificado sempre que um arquivo de log for fechado.

Se você não usar o evento LogFileGenerated ou o método CloseAndSaveToFileAsync , o FileLoggingSession não excluirá arquivos de log obsoletos (embora uma nova sessão possa substituir arquivos gerados por uma sessão anterior). Seu aplicativo é responsável por localizar e limpar os arquivos de log conforme necessário.

Antes que um arquivo de log seja fornecido a um aplicativo por meio do evento LogFileGenerated ou do método CloseAndSaveToFileAsync , ele é renomeado para um nome de arquivo de log especial. O mesmo nome de arquivo de log sempre é usado, portanto, novos logs substituirão os logs mais antigos. Dessa forma, os métodos LogFileGenerated e CloseAndSaveToFileAsync ajudam a impedir que arquivos de log obsoletos desperdiçam espaço na pasta ApplicationData.

FileLoggingSession fechará o arquivo de log atual e iniciará um novo arquivo de log quando o arquivo de log atual atingir 256 KB.

Construtores

FileLoggingSession(String)

Inicializa uma nova instância da classe FileLoggingSession .

Propriedades

Name

Obtém o nome da sessão de registro em log.

Métodos

AddLoggingChannel(ILoggingChannel)

Adiciona um canal de registro em log à sessão de log atual.

AddLoggingChannel(ILoggingChannel, LoggingLevel)

Adiciona um canal de registro em log à sessão de log atual. O canal de registro em log aceita apenas eventos que têm um nível de registro em log no nível de log especificado ou acima do nível de log especificado.

Close()

Encerra a sessão de log atual.

CloseAndSaveToFileAsync()

Encerra a sessão de log atual e a salva em um arquivo.

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

RemoveLoggingChannel(ILoggingChannel)

Remove o canal de log especificado da sessão de log atual.

Eventos

LogFileGenerated

Gerado quando um arquivo de log é salvo.

Aplica-se a

Confira também