Olá pessoal, hoje gostaria de mostrar e falar como escrever log no eventview do Windows usando a linguagem C#.NET. São dois métodos simples, pois eu crio um novo item junto do event view, ficando assim mais um item na tela de evento.
Usado:
Linguagem C#.NET
Ferramenta: Visual Studio .NET
Tipo da plataforma: Classe geral


Figura 1

        O item marcado 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);
        }
Code 1

        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);
            }
        }

Code 2.

        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);
        }

Code 3.
        Lembro que no cĂłdigo 1, o Ăşltimo parâmetro Ă© do tipo EventLogEntryType que identifica o Ă­cone de registro.  Outra dica importante Ă©, coloque no inĂ­cio da sua classe o using System.Diagnostics. É necessário para entender o EventLogEntry.
 
Espero que tenham gostado e qualquer dĂşvida pode entrar em contato.