Получить расположение файлов журнала событий Windows

Мы используем EventLog для регистрации исключений. есть фоновый поток, который проверяет, как только журнал событий заполняется, и программно передает записи в файл XML, а затем очищает журнал событий.

Это работает нормально, но похоже, что выполняется слишком много работы, я подумал, что было бы лучше просто скопировать файл .evt, используемый для ведения журнала текущего приложения, а затем очистить журнал событий.

есть ли способ найти местоположение / путь к файлу, который будет работать на каждой ОС Windows?

его предлагается использовать

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

но тогда в моих именах журналов приложений нет свойства File.


person Mithir    schedule 21.06.2012    source источник


Ответы (1)


Как вы их сейчас архивируете? Может быть, этот метод можно улучшить для повышения производительности.

Вот пример.

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

Или вы можете использовать метод 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

Более подробную информацию можно найти здесь:

Экспорт, архивирование и очистка журналов событий

person Christophe Geers    schedule 21.06.2012
comment
Спасибо, это очень помогло. похоже, что метод ClearLog очень прост в использовании, я заметил, что вы упомянули производительность, является ли ClearLog лучшим вариантом с точки зрения производительности? Для меня это важно, потому что производительность - основная причина этого изменения. - person Mithir; 21.06.2012
comment
Не знаю, но я бы, конечно, сравнил это с любой реализацией, которая у вас есть сейчас. - person Christophe Geers; 21.06.2012