程序关闭时Log4Net持久缓冲区

时间:2012-06-20 16:09:14

标签: .net winforms user-interface log4net

Log4Net库是全新的,有些东西我无法弄清楚。

我假设缓冲区只在内存中,对吧?当您启动应用程序的新实例时,缓冲区会重新初始化?我有一个要求,我被告知只有在应用程序失败多次后才向技术支持发送电子邮件。此应用程序将按计划运行(每两分钟左右)。如果失败,它将在两分钟后重试。如果失败太多次失败(并且由于错误被抛出而失败),那么它应该发送电子邮件。

我现在能想到的最简单的方法是将失败的尝试次数持续到user.config。然后,当我的程序捕获异常检查以查看发生了多少次失败尝试时,如果达到阈值,则使用正确的logger / appender发送电子邮件。在成功运行程序之后,退出之前要做的最后一件事就是将user.config设置重置为0次尝试失败。

有更好的方法吗?也许某种方式来保持缓冲区以便我可以用有损设置做某事?

1 个答案:

答案 0 :(得分:0)

缓冲区在内存中,这意味着如果您再次启动应用程序并再次考虑计划任务,则必须以某种方式保留数据。

我会使用文件或注册表(其他持久解决方案 - 数据库,memcached ......等)

要发送带有log4net的邮件,您可以查看this post