使用 log4net 批量登录到 SQL 服务器
Logging to SQL Server in bulks using log4net
我正在使用 log4net 将消息记录到使用 AdoNetAppender
的 SQL 服务器数据库。我需要批量插入日志。我试过使用 appender 的 batchSize
属性,但据我所知,结果是这样的:
conn.Open();
for (int i = 0; i < count; i++)
{
comm.ExecuteNonReader();
}
conn.Close();
这最终转化为一堆插入。因此,如果我的批量大小是例如 500,那么将有 500 个连续插入。
我的目标是在 1 个插入语句中插入大量数据。就像 .NET 的 SqlBulkCopy
.
用log4net可以达到这个效果吗?还是我必须实现自己的自定义附加程序才能这样做?
您必须编写自己的自定义附加程序,因为 log4net 不会开箱即用。您可以从 AdoNetAppender 继承并覆盖 virtual protected void SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)
我正在使用 log4net 将消息记录到使用 AdoNetAppender
的 SQL 服务器数据库。我需要批量插入日志。我试过使用 appender 的 batchSize
属性,但据我所知,结果是这样的:
conn.Open();
for (int i = 0; i < count; i++)
{
comm.ExecuteNonReader();
}
conn.Close();
这最终转化为一堆插入。因此,如果我的批量大小是例如 500,那么将有 500 个连续插入。
我的目标是在 1 个插入语句中插入大量数据。就像 .NET 的 SqlBulkCopy
.
用log4net可以达到这个效果吗?还是我必须实现自己的自定义附加程序才能这样做?
您必须编写自己的自定义附加程序,因为 log4net 不会开箱即用。您可以从 AdoNetAppender 继承并覆盖 virtual protected void SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)