Obter a localização dos ficheiros de registo de eventos do windows

estamos a usar o EventLog para registar excepções. há um tópico de fundo que verifica uma vez que o eventlog ficar cheio e programaticaly transfere os itens para um arquivo XML e, em seguida, limpar o log do evento.

Isto funciona bem, mas parece que há muito trabalho a ser feito, pensei que seria melhor simplesmente copiar o .o ficheiro evt usado para registar a aplicação actual e depois limpar o registo do evento.

Existe alguma maneira de encontrar a localização/Localização do ficheiro que vai trabalhar em todos OS sistemas operativos do windows?

O SEU sugeriu usar

Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);

mas os nomes dos registos da minha aplicação não têm uma propriedade de ficheiro.

Author: Mithir, 2012-06-21

1 answers

Como estás a arquivá-los agora? Talvez esse método possa ser melhorado para ganhar desempenho. Eis um exemplo.
EventLogSession els = new EventLogSession();
els.ExportLogAndMessages("Security",             // Log Name to archive
                         PathType.LogName,       // Type of Log
                         "*",                    // Query selecting all events
                         "C:\\archivedLog.evtx", // Exported Log Path 
                         false,                  // Stop archive if query is invalid
                         CultureInfo.CurrentCulture);

Ou pode usar o método ClearLog ().

EventLogSession els = new EventLogSession();

// Clears all the events and archives them to the .evtx file
els.ClearLog("System",          //  Channel to Clear
             "c:\\myLog.evtx"); //  Backup File Path

Mais informações podem ser encontradas aqui:

Exportar, arquivar e limpar os registos de eventos

 2
Author: Christophe Geers, 2012-06-21 08:03:45