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