Log4Net AdoNetAppender- truncate table / 删除旧记录 / 限制 DB 大小

Log4Net AdoNetAppender- truncate table / delete old records / limit DB size

有效限制 table Log4Net 登录大小的简单方法是什么?

比如删除旧记录, 或者当记录总数达到预定义的限制时删除, 或者当 table(或数据库)大小达到大小限制时

(编辑) 因为我们有两种类型的标记数据库 (MySQL / MSSQL) 的客户,所以从维护 POV 来看,单点解决方案会更好。

我们考虑过使用一些代码(使用 NHibernate)定期执行 @samy 建议的操作。但性能高效的 Log4Net 解决方案总是更好。

我假设您想完全通过 log4net 完成它;如果你不这样做,那么

  • 使用 cron task 将以您想要的间隔删除早于 x 天的数据
  • 使用一个 trigger 可以对 log4net
  • 插入的新数据作出反应

这些方法会比下面的更简洁。

AdoNetAppender lets you specify the command text 以来,您可以设置第二个 AdoNetAppender,它将由日志记录事件与您的原始 appender 一起触发。然后,第二个附加程序可以删除您不再需要的数据:

CommandText="DELETE FROM Logs WHERE [date] < DATEADD(Hour,
-6, GETDATE())"

我认为 日志框架不应该处理数据库维护 所以请考虑让 MySQL 代替工作。