2011-01-20 52 views
6

在ASP NET項目(C#)上,我使用System.Diagnostics命名空間來記錄錯誤,警告和信息。 使用Windows 7我看到我爲該項目設置的日誌位於「應用程序和服務日誌」下。 如何在代碼中設置創建文件夾並將其置於「應用程序和服務日誌[某些文件夾] \應用程序和服務日誌」中,例如?如何將事件日誌存儲在文件夾中

回答

-4

創建Event Source時,請指定Log Name。它將成爲事件查看器中的「文件夾」。

EventLog.CreateEventSource("Source", "Log name"); 
EventLog.WriteMessage("Source", "Your message"); 

請注意,創建事件源可能需要附加的計算機權限。在ASP.Net上下文中,我建議創建一個創建事件源的窗口或控制檯應用程序。以管理員身份運行一次。

+8

是多數民衆贊成是我生成事件到日誌的方式,但這種方式,我得到的結構:「應用程序和服務日誌\\ [日誌]「...但我想要的是一個結構:」應用程序和服務日誌\\ [FOLDER] \\ [日誌]「 像例如關於」應用程序和應用程序和Windows日誌事件查看器上的服務日誌\ Microsoft \ Windows \ Dhcp-Client \\ [Log] ... – RedEagle 2011-01-21 09:22:01

+0

已經下載此回答因爲我有和RedEagle一樣的經歷。 – 2012-10-31 22:01:15

1

這是.NET 3.5的一項新功能,微軟推出了一個不太友好的新庫,可以閱讀它here。它說,很可能過時了,這些類只能在Windows Vista中運行,但是我猜測他們可以在Windows 7和Server 2008中訪問。

我沒有找到代碼來解釋如何創建一個像你所要求的新層次結構,但是,我相信這是一個大方向。

-2

你有沒有考慮過使用更通用的日誌機制,它提供了更大的靈活性?例如log4net。然後,您可以隨時在日誌文件和事件日誌之間切換,也可以在不更改代碼行的情況下隨時切換其他方法。

12

存儲在「應用程序和服務日誌」部分中的日誌是自定義事件發佈者的日誌,而不是簡單的Windows事件日誌。

從這篇文章Technology Summary for Reading and Managing Event Logs

應用程序和服務日誌比 Windows日誌事件日誌的 不同的類別。應用程序和 服務日誌存儲來自 單個應用程序或組件的事件,而不是 ,而不是可能影響系統範圍的事件。他們有一個 各種名稱,由 事件提供程序定義。

因此,您需要創建一個自定義的事件發佈者。這裏有一對夫婦的文章更多信息:

相關問題