如何配置log4net以进行回退

时间:2010-07-14 08:51:46

标签: log4net log4net-configuration

这是我的情况。我已经使用log4net成功实现了对远程syslog的日志记录。但是,据我所知,如果syslog IP无效,则所有消息都不会在任何地方记录,也不会引发异常。它什么也没做。

因此,有一些回退会很好。假设写入syslog失败,请写入文件或数据库。

log4net甚至可以实现吗?或者我是否必须将其配置为同时登录到两个位置?

1 个答案:

答案 0 :(得分:3)

我认为你不能通过配置来做到这一点。这个问题是open in the log4net feature backlog

如果您的应用程序可以吃掉日志记录开销,最简单的解决方案是默认情况下登录备用appender。

或者,您可以尝试在自定义appender中包装您正在使用的appender,并在syslog appender抛出异常时实现回退方案。如果它不能无声地吞下它们。

来自log4net FAQ

  

您可以实现log4net.Appender.IAppender接口来创建自己的自定义appender。我们建议您扩展log4net.Appender.AppenderSkeleton类,而不是从头开始。您应该在与log4net程序集分开的程序集中实现自定义代码。

     

要开始使用,请务必查看log4net.Appender.TraceAppender的源代码,作为使appender工作所需的最少代码量的示例。

第三个选项是查看appender的源代码,看看你是否可以分叉它并在那里进行必要的自定义。