我們正在嘗試爲我們在Windows Server 2008 R2上運行的打印機執行一些內部打印審覈。通過事件查看器中啓用日誌後:如何以編程方式或定期清除Operational PrintService事件日誌?
應用程序和服務日誌 - >微軟 - >窗口 - >的PrintService - >運算
我成功地通過定製抓住與ID 307事件根據我的需要回答this question,然後將這些事件存儲在數據庫中供其他應用程序使用。
// 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
的回答this question提示您不能使用EventLog類訪問Microsoft-Windows- *事件日誌。
有什麼我可以做的,以編程方式清除這個特定的事件日誌(不只是307個事件,但也在操作日誌中的其他人)?
我想設置這個小程序自動運行幾分鐘,幾小時或幾天,但現在它會檢查數據庫中的現有事件,並添加少量新的最後一次運行。