是否可以覆盖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>
答案 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">