Escrevendo no “Windows Events Log” com o Magic xpa

Veja como usufruir de mais esta facilidade disponível nas aplicação Magic xpa, através de sua integração nativa com o MS.NET Framework

Em frequentes postagens temos destacado benefícios que a integração nativa do Magic xpa com o MS.NET Framework pode trazer às aplicações/soluções desenvolvidas na plataforma, e este, é mais um exemplo.

 

Em qualquer solução criada, seja de “aplicação” ou “integração”, o bom sistema de logs é fundamental.

Rastrear o que está sendo feito pelo sistema é essencial para poder compreender, posteriormente, porque uma determinado evento ocorreu ou porque uma decisão foi tomada daquela maneira.

E não se trata apenas de apoio ao suporte. Mas também coleta e análise recorrente do desempenho da solução.

 

O Windows possui um sistema nativo e padronizado de registro de logs, que pode ser acessado pelo Event Viewer.

E possui uma API, encapsulada em classes .NET, para que qualquer aplicação possa acessá-lo para ler ou gravar informações. É a classe EventLog.

 

Para utilizá-lo nas aplicações Magic xpa, primeiro temos de adicionar uma referência ao assembly System:

 

Esta interface é tão simples, que os principais recursos estão disponíveis como métodos estáticos da classe, o que nos libera de ter de instanciar um objeto dela (para as tarefas que queremos aqui exemplificar).

 

Começamos definindo duas informações importantes:

  • Classe do Evento: que possui alguns valores pré-definidos e na maioria dos casos, como aqui, será: Application
  • Fonte do Evento: que é um nome livre, e deve ser capaz de identificar a nossa aplicação no meio das demais

 

Como o sistema de logs é um serviço, em teria ele pode estar desativado. Então nosso código inicial é checar se de fato temos um sistema ativo para utilizar:

DotNet.System.Diagnostics.EventLog.Exists( Trim( <ClasseEventos> ) )

 

Se está OK, registramos nossa fonte de eventos (se já não estiver registrada):

DotNet.System.Diagnostics.EventLog.CreateEventSource( Trim( <FonteEvento> ), Trim( <ClasseEventos> ) )

 

E escrevemos uma mensagem do tipo Information, no TaskPrefix do programa:

DotNet.System.Diagnostics.EventLog.WriteEntry( Trim( <FonteEvento> ), 'Task Prefix de: ' & Prog(), DotNet.System.Diagnostics.EventLogEntryType.Information, 65000, 0 )

 

Nosso programa exemplo tem um botão centralizado na sua tela, que a cada vez que é clicado ele dispara um evento, encarregado de escrever uma mensagem do tipo Error:

DotNet.System.Diagnostics.EventLog.WriteEntry( Trim( <FonteEvento> ), Trim( <Mensagem> ), DotNet.System.Diagnostics.EventLogEntryType.Error, 65000, 0 )

 

E quando o programa finaliza, escrevemos uma mensagem do tipo Warning, no TaskSuffix do programa:

DotNet.System.Diagnostics.EventLog.WriteEntry( Trim( D ), 'Task Suffix de: ' & Prog(), DotNet.System.Diagnostics.EventLogEntryType.Warning, 65000, 0 )

 

E é isso! É fácil assim mesmo…

 

Executando nosso exemplo e dando alguns cliques no botão, teremos um resultado semelhante a este:

 

Baixa agora um projeto exemplo Magic xpa 3.3x deste endereço, e usufrua de mais esta facilidade Magic.

 

Manoel Frederico Silva – Gerente de Tecnologia e Evangelista MAGIC – Magic Brasil
Manoel Frederico Silva – Evangelista MAGIC – Magic Brasil

 

Para receber os artigos do Blog Magic Brasil em primeira mão no seu email, registre-se aqui

 

Deixe um comentário

O seu endereço de e-mail não será publicado.