2016-09-27 62 views
0

有沒有辦法在AdoNetAppender中覆蓋SendBuffer方法來批量插入數據庫中的日誌? 下面這個linkSendBuffer方法log4net通過迭代loggingevent寫入日誌數據庫並插入每個單獨的查詢,我想插入所有日誌查詢,我認爲這種方法提高性能。Log4net adoNetAppender批量插入日誌記錄事件

+0

你在批量寫入數據庫方面可能是正確的,但這不是日誌記錄?記錄是關於「寫下」事件;這種錄音應該儘快發生。那麼你如何建議在你的重寫方法中建立低水位?如何確定何時最好批量寫入loggingevents?如果應用程序崩潰而您仍然有一系列您正在等待寫入的事件?我認爲log4net傢伙可能已經對此進行了研究。彈出並問他們... –

+0

如果性能真的是一個問題,你[記錄太多](https://blog.codinghorror.com/the-problem-with-logging/)? – stuartd

回答

0

可以使一個類,如:

public class MyAdoNetAppender : AdoNetAppender 
{ 
    override protected void SendBuffer(IDbTransaction dbTran, LoggingEvent[] events) 
    { 
     (... implementation goes here) 
    } 
} 

可以使用類像配置(MYDLL是你的DLL名稱,並確保您擁有的命名空間是正確的):

<appender name="A1" type="MyAdoNetAppender,MyDll">