有效限制 Log4Net 登录的表大小的简单方法是什么?
例如删除旧记录,或在记录总数达到预定义限制时删除,或者当表(或 DB)大小达到大小限制时删除
(编辑)因为我们有两种类型的标记数据库(MySQL / MSSQL)的客户,所以从维护 POV 来看,单点解决方案会更好。
我们考虑过使用一些代码(使用 NHibernate)来定期执行@samy 建议的操作。但是性能有效的 Log4Net 解决方案总是更好。
有效限制 Log4Net 登录的表大小的简单方法是什么?
例如删除旧记录,或在记录总数达到预定义限制时删除,或者当表(或 DB)大小达到大小限制时删除
(编辑)因为我们有两种类型的标记数据库(MySQL / MSSQL)的客户,所以从维护 POV 来看,单点解决方案会更好。
我们考虑过使用一些代码(使用 NHibernate)来定期执行@samy 建议的操作。但是性能有效的 Log4Net 解决方案总是更好。
我假设你想完全从 log4net 做这件事;如果你不这样做,那么要么
这些方法将比以下方法更清洁。
由于AdoNetAppender允许您指定命令文本,因此您可以设置第二个 AdoNetAppender,它将由日志事件与您的原始附加程序一起触发。然后,第二个附加程序可以删除您不再需要的数据:
CommandText="DELETE FROM Logs WHERE [date] < DATEADD(Hour,
-6, GETDATE())"
我认为日志框架不应该处理数据库维护,所以请考虑让 MySQL 来代替。