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