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

时间:2016-09-27 12:26:19

标签: c# log4net log4net-configuration log4net-appender

是否可以覆盖SendBuffer中的AdoNetAppender方法批量插入数据库中的日志? 在SendBuffer class Article { /** * @var int * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var integer * * @ORM\Column(name="author", type="integer") */ private $author; /** * @var ? * * @ORM\Column(name="image", type="?") */ private $image; /** * @var string * * @ORM\Column(name="url_movie", type="string") */ private $url_movie; /** * @var integer * * @ORM\Column(name="media", type="integer") */ private $media; } 方法下面的link log4net通过loggingevent迭代在数据库中写入日志,并将它们中的每一个插入到单独的查询中,我想在查询中插入所有日志,我认为这种方法可以提高性能。 / p>

1 个答案:

答案 0 :(得分:0)

你可以创建一个类:

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

您可以在配置中使用类(MyDll是您的dll名称,并确保您的命名空间正确):

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