Как программно или регулярно очищать журнал событий Operational PrintService?
Мы пытаемся провести внутренний аудит печати для принтеров, которые работают на Windows Server 2008 R2. После включения журнала через Event Viewer в:
Журналы приложений и служб -> Microsoft -> Windows -> PrintService -> Операционная
Я успешно собираю события с идентификатором 307, адаптируя ответ кэтот вопрос для моих нужд, а затем хранить эти события в базе данных для использования в других приложениях.
// Build formatted query string
string eventID = "307";
string logSource = "Microsoft-Windows-PrintService/Operational";
string sQuery = String.Format("*[System/EventID={0}]", eventID);
// Define query and reader
var elQuery = new EventLogQuery(logSource, PathType.LogName, sQuery);
var elReader = new System.Diagnostics.Eventing.Reader.EventLogReader(elQuery);
// List for holding events
List<EventRecord> eventList = new List<EventRecord>();
for (EventRecord eventInstance = elReader.ReadEvent();
null != eventInstance; eventInstance = elReader.ReadEvent())
{
eventList.Add(eventInstance);
}
То, что я не могу сделать сейчас, это ясно, что журнал после сохранения этих событий.
Это позволяет мне вручную очистить этот журнал от просмотра событий, но работает:
public static void PrintLogs()
{
foreach (var eventLog in EventLog.GetEventLogs())
{
Console.WriteLine(eventLog.Log.ToString());
}
}
выводит только журналы более высокого уровня, перечисленные в разделе «Журналы приложений и служб»:
Application
HardwareEvents
Internet Explorer
Key Management Service
OAlerts // Not sure where OAlerts and
PreEmptive // PreEmptive are in the Event Viewer
Security
System
Windows PowerShell
Ответ наэтот вопрос намекает на то, что вы не можете использовать класс EventLog для доступа к журналам событий Microsoft-Windows- *.
Могу ли я что-нибудь сделать, чтобы программно очистить этот конкретный журнал событий (не только 307 событий, но и другие в журнале операций)?
Я бы хотел настроить эту маленькую программу так, чтобы она запускалась каждые несколько минут, часов или дней автоматически, но сейчас было бы очень сложно проверить базу данных на наличие существующих событий и просто добавить несколько новых, появившихся с момента последнего запуска. побежал.