我試圖通過System.Diagnostics.EventLog
設置基本日誌記錄到.net中的windows事件日誌,但我沒有看到任何事件實際上正在寫入日誌。請看下面的代碼:如何寫入自定義Windows事件日誌?
// Elsewhere in the class
private static readonly string EventLogName = "LogName";
private static readonly string EventLogSource = "AppName";
// In the only function that does something
if (!EventLog.Exists(EventLogName))
{
EventLog.CreateEventSource(EventLogSource, EventLogName);
return;
}
else
{
Trace.TraceInformation("Attempting log");
// This doesn't write anything
EventLog.WriteEntry(EventLogSource,
"StaticWriteEntry",
EventLogEntryType.Error);
// Neither does this
using (var log = new EventLog())
{
log.Log = EventLogName;
log.Source = EventLogSource;
log.WriteEntry("WriteEntry?", EventLogEntryType.Error);
}
}
return;
第一次通過創建日誌並退出該應用程序,按照MSDN樣本。當然,這個日誌創建最終會進入設置。後續運行嘗試將消息記錄到創建的事件日誌中。
沒有任何異常被拋出。該日誌似乎已成功創建(我可以在Windows事件查看器中打開它)。沒有相關的記錄到安全日誌。
沒有消息通過WriteEntry()
記錄。由於名稱不匹配,它們也未放置在應用程序日誌中。在這種特殊情況下,我在禁用UAC的管理員帳戶中運行Server2008。 (這是一個較大的遺留產品的一小部分,需要不幸的環境。)我做錯了什麼?
(我這樣做是因爲我想在我的app.config使用一個EventLogTraceListener
,它並沒有寫任何東西,所以這是故障診斷這個問題的一部分。)
謝謝,這也解決了我的問題,我登錄了某些東西,更改了源代碼,刪除了舊源代碼,然後發現沒有任何內容寫入到我的新源中。 – 2009-09-14 16:18:14