Log4net adoNetAppender批量插入日志记录事件

问题描述:

有没有办法在AdoNetAppender中覆盖SendBuffer方法来批量插入数据库中的日志? 下面这个linkSendBuffer方法log4net通过迭代loggingevent写入日志数据库并插入每个单独的查询,我想插入所有日志查询,我认为这种方法提高性能。Log4net adoNetAppender批量插入日志记录事件

+0

你在批量写入数据库方面可能是正确的,但这不是日志记录?记录是关于“写下”事件;这种录音应该尽快发生。那么你如何建议在你的重写方法中建立低水位?如何确定何时最好批量写入loggingevents?如果应用程序崩溃而您仍然有一系列您正在等待写入的事件?我认为log4net家伙可能已经对此进行了研究。弹出并问他们... –

+0

如果性能真的是一个问题,你[记录太多](https://blog.codinghorror.com/the-problem-with-logging/)? – stuartd

可以使一个类,如:

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

可以使用类像配置(MYDLL是你的DLL名称,并确保您拥有的命名空间是正确的):

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