Seções iMasters
.NET + C#

Escrevendo no EventView

Olá pessoal,

Neste artigo eu gostaria de mostrar e falar um pouco sobre como escrever log no event view do Windows, usando a linguagem C#.NET. São dois métodos simples. É basicamente criar um novo item junto do event view, ficando assim mais um item na tela de evento.

Itens utilizados:

  • Linguagem C#.NET
  • Ferramenta: Visual Studio .NET
  • Tipo da plataforma: Classe geral

Figura 1.

O item marcado como Transferir Arquivos foi criado pelo código. Então vamos lá!

O primeiro método chamado EscreverLog passa quatro parâmetros do tipo string e EventLogEntryType.

No caso deste artigo, vou mostrar o método que verifica se foi passado o nome do diretório (Transferir Arquivos). Por exemplo, se não for passado o nome do diretório, o log será gravado dentro do item (Aplicativo) conforme mostrado na figura 1.

Code 1.

 public static void EscreverLog(string source, string logName, string message, EventLogEntryType type)
{
if (String.IsNullOrEmpty(source))
{
throw (new ArgumentException(Resources.NullOrEmptyValue, "source"));
}

if (String.IsNullOrEmpty(message))
{
throw (new ArgumentException(Resources.NullOrEmptyValue, "message"));
}

EventLogWriter.VerificaDiretorio(source, logName);

EventLog.WriteEntry(source, message, type);
}

Note
que na penúltima linha existe um método chamado VerificaDiretorio (source, logName). Esse método verifica se a
string logName é igual a null.

Se for
igual a null, ele grava o log dentro do item Application ou Aplicativo. Se não for igual a null, ele cria um item (como se fosse um diretório) dentro do
event view de acordo com o nome passado.  O código 2 mostra como é feito.

Code 2.

private static void VerificaDiretorio(string source, string logName)
       {
            if (String.IsNullOrEmpty(logName))
            {
                logName = "Application";
            }

            if (!EventLog.SourceExists(source))
            {
                EventSourceCreationData sourceData = new EventSourceCreationData(source, logName);

                EventLog.CreateEventSource(sourceData);
            }
        }

Criei
um outro método público chamado EscreverErro
com apenas dois parâmetros de entrada, isso significa que, o evento será
gravado dentro do item padrão do event view. Ele não cria um novo item, apenas
registra. Com estes métodos você pode usar um ou outro dependendo da sua
necessidade.

Code 3.

 public static void EscreverErro(string source, string message)

{

EventLogWriter.Write(source, null, message, EventLogEntryType.Error);

}

Lembre-se
que no código 1, o último parâmetro é do tipo EventLogEntryType
que identifica o ícone de registro.  Outra dica importante é colocar no início da
sua classe o using System.Diagnostics.
É necessário para entender o EventLogEntry.

Espero
que tenham gostado desta forma de escrita do log no event view do Windows usando linguagem C#.NET.

Qualquer dúvida pode entrar em contato, ou deixe suas impressões e testes no espaço abaixo para comentários.

Até à próxima!

Qual a sua opinião?