2015-05-13 37 views
1

我執行日誌在Web服務應用程序有以下要求:應用程序日誌與對象序列化

  • 日誌應被存儲在數據庫
  • 日誌應該是機器可讀(信息的每一位應存放在單獨列)
  • 日誌應該是可擴展(客戶端代碼可以指定信息將在數據庫中去特定列)
  • 應該能夠從客戶端代碼傳遞大對象數據庫(serialiazing)
  • 不應該打性能(DB的寫操作應在單獨的線程來完成)

我知道,log4net的和similair解決方案具有DB追加程序。但是,如何編寫數據庫呢?和大對象?

的基本用例,這是翻閱事件,並能夠在運行的任何地方獲得輸入/輸出對象的能力。

我覺得我搞亂應用程序日誌不同的東西。有沒有人知道這種產品/架構的正確名稱?也許有一些通用的解決方案?

回答

1

ReflectInsight一試。它使用能夠添加擴展屬性的結構格式。它也有一個Db作家監聽器,或者你可以創建自己的。

編輯:

  1. 日誌應存放在數據庫(是的,你可以使用自己的數據庫監聽器 本)
  2. 日誌應該是機器可讀(信息 每一位應該是存儲在單獨的列)(是的,有標準 性質是每個郵件存儲,再加上你可以通過使用擴展屬性,這些屬性也可以存儲在數據庫和 其他列表定義 自己eners,就像在實時監控等)
  3. 日誌應該是可擴展 (客戶端代碼可以指定信息將在數據庫 去特定的列)應該能夠從客戶端代碼大對象傳遞給 數據庫(serialiazing) (是的,這是開箱即用的。您可以通過簡單配置來配置要在數據庫中存儲的屬性。自定義對象是在日誌自動序列(或DB你的情況),作爲RI用來記錄的結構格式)
  4. 不應該打性能(DB寫 操作應在單獨的線程來完成)(是全部。採伐活動,爲了不影響主機應用程序的性能)
  5. 的實時瀏覽器本身並收到80000味精/秒通過一個單獨的工作線程發送到偵聽
  6. 直播內存佔用小,因爲大多數封郵件是在硬緩存驅動器
  7. 具有自動保存/自動清除功能。
  8. 可以輕鬆使用NLog,Log4net,EntLib,Common Logging框架映射到RI的框架(但是,您將失去記錄豐富詳細信息的能力,如數據集,集合等)。

enter image description here

免責聲明:我不直接ReflectSoftware工作,但是我的主要開發者,幫助建立一個ReflectInsight。我的主要目標是幫助任何具有日誌框架需求的人,並且只回應適用於這種問題的計算器問題。

+0

從第一個角度來看,我真的不明白爲什麼這比普通的log4net更好。它支持我上面列舉的任何東西嗎? – Vitaliy

+0

@Vitaliy - 我提供了更多的細節。請參閱編輯更改。 – code5