2009-09-17 48 views

回答

4

我最討厭的答案,居然在這裏也適用:「這取決於」。具體來說,它取決於幾件事情:

  • 誰是日誌記錄信息?它是面向企業用戶(即,是否有實際業務需求),是在應用程序管理爲導向的信息,你需要經常使用的功能的洞察力等
  • 什麼是記錄信息的粒度?例如:你只需要知道是否使用了搜索功能,你想知道搜索查詢還是需要關於實際搜索結果的信息?
  • 如何準確&完整所做的信息必須是?審計跟蹤要求通常非常嚴格,技術要求往往不那麼嚴格。
  • 你希望能夠回滾操作/活動?如果是這樣,誰去做到這一點(企業用戶,支持人員)
  • 什麼是您的部署是什麼樣子?如果您擁有單個服務器,則與使用服務器場/負載平衡環境相比,記錄到文本文件或XML更爲可行。

對於應用程序日誌記錄,請查看衆所周知的提供程序,如log4net或企業庫日誌記錄應用程序塊;兩者都允許您配置您想要登錄的位置(文本文件,數據庫等)。
對於記錄數據庫操作,我建議在數據庫中的解決方案。多個版本的SQL Server 2008內置了對審計的支持,Oracle已經有了這種多年的IIANM。

0

PostSharp可能。登錄到數據庫。

- 編輯:

這是記錄所有代碼的操作。要記錄所有數據庫操作,我會使用觸發器。

+0

感謝您的快速響應!您能否詳細說明在登錄數據庫與XML /其他方式之間的優勢?非常感謝你柔滑! – 2009-09-17 06:43:08

+2

那麼,XML只是一個文件。它會變得非常大,所有的日誌記錄,煩人的管理,很難查詢。 DB是爲查詢而構建的,具有很好的備份功能,易於執行,並且可以確保完整的驅動系統。當然,它的佈局不如XML靈活(所以你不能僅僅寫一個類和所有的屬性),但這是我的首選。在最糟糕的情況下,您可以將一些相關的XML序列化到一個字段(對於類規範,比如說)。 – 2009-09-17 07:33:16

+0

如果保留日誌的數據庫已損壞,那麼可以在該場景中應用哪些意外事件? – 2009-09-17 08:06:39

0

如果您不需要複雜的審計系統,但只需記錄您的代碼正在執行的操作,我會建議您使用與.NET Framework和ASP.NET集成的跟蹤系統。

在框架中使用非常簡單的類,您的代碼會發出跟蹤,然後通過配置文件將它們發送到不同的存儲系統(文件,數據庫,Windows事件等)。在配置log4net

,因爲你可以配置和改變輸出(文件,郵件,數據庫,...):你甚至可以創建自己的專賣店系統跟蹤提供

http://msdn.microsoft.com/en-us/library/system.diagnostics.trace.aspx

0

我會用文件,所以你不必重建你的代碼。