2011-12-01 52 views
1

我曾考慮使用log4net登錄數據庫集羣(目前我們正在使用log4net登錄到單個數據庫),但Scribe看起來像是bettersolution,我還沒有取得太多的成功,也沒有很多Scribe .net API/Interfaces的例子。如何開始在.net抄寫員?

我們與每百萬每天加推的抄寫架構命中一箇中央資料庫的多個應用服務器並讓這做耗時的活動似乎是向前邁出的合乎邏輯的方式。

有誰知道我在哪裏可以找到很好的.Net隸的例子,以及是否有任何其他可擴展的分佈式日誌我應該考慮的選項?

+0

有沒有一種方法可以改善我的問題,我在問如何開始使用抄寫員,或者我應該考慮的任何替代方法。我已經更新了我的問題,我希望這是您的喜好。 –

回答

2

我無法幫助你抄寫,所以也許我的回答沒有幫助,甚至毫無意義。

我儘量給我們的變種

以及是否有任何其他可擴展的分佈式日誌我 應該考慮的選項?

在我們的項目中,我們使用NLog具有類似的目標。您不會提供有關所需可擴展性的詳細信息,因此我不能確定它是否適合您。

NLog在源代碼級別與log4net兼容。我的意思是它需要小的代碼更改,以適應您現有的log4net日誌代碼通過NLog登錄。

看看支持Targets。你可以按原樣使用Network Target,或者如果你決定使用它,寫你自己的(這很簡單)與提到的抄寫員溝通。

可以使用Log2Console的源代碼作爲接收器的例子。

我不能給準備使用日誌服務器解決方案(除廣告如直布羅陀),但是我們做,你可以自己編寫。

個人而言,我不會推薦使用任何記錄系統(包括log4net的,NLOG等)的直接數據庫日誌記錄功能。更好地提供額外的級別,這將與日誌提供者進行通信(例如通過網絡),彙總數據並像在Scribe中那樣對數據庫(日誌文件)進行批量更新。它可以提高日誌子系統的整體性能。

+0

您知道網絡日誌可以批量插入數據庫嗎?一次寫100個,你可以使用,這是我們目前使用的,它可以處理很多! –

+0

是的,但AFAIK log4net通過將它們封裝到單個事務中來執行批量插入。當然,它會逐一提高性能,但在某些情況下(通過使用DBMS特定的BULK INSERT操作)可以實現更好的性能(大量插入)。 MS SQL Server中它可以通過SqlBulkCopy的完成的情況下:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx log4net的選擇一般的解決方案,因爲它提供ADO.NET包裝。你可以自己擴展它的默認實現,當然也可以使用DBMS特定的性能調整。 –

+1

我之所以提出我的建議,是因爲通過使用一些中間件,您可以以更高的速率收集數據,並與解決方案進行大單插入比較,其中每個記錄器進行部分更新,並在記錄器數量(以及DBMS連接數量)增長時強調DBMS 。如果您有大量的記錄數據和/或記錄器,它可以更高效。 –