log4net用于关键日志记录

时间:2015-12-08 14:02:02

标签: logging log4net

我们的客户有一个我们必须打电话的网络服务,他们要求我们将所有流量记录到网络服务。也就是说,我们必须记录对服务的调用的输入和输出,并且所有日志条目都可用是非常关键的。 log4net适合这种关键日志记录吗?例如,我们遇到了一个log4net的功能,如果我们登录到数据库,并且连接丢失,默认情况下不会重新建立。 此外,据我所知,默认情况下log4net是异步的,这意味着即使日志操作失败,也存在丢失某些日志项的风险或者告知用户呼叫进行良好的风险。 有没有人对上述内容有任何评论?

1 个答案:

答案 0 :(得分:2)

作为log4net FAQ states

  

log4net是一个可靠的日志记录系统吗?

     

没有。 log4net不可靠。这是一种尽力而为的故障停止日志记录   系统

这意味着log4net将尽最大努力完成日志记录操作,但如果它因任何原因失败,log4net将不会破坏托管应用程序:

  

log4net不会还原为System.Console.Out或System.Console.Error   当其指定的输出流未打开时,不可写或   变满了。 ...但是,log4net将输出一条消息   System.Console.Error和System.Diagnostics.Trace指示   无法执行日志记录

根据内置Web服务客户端的技术,它可能包括消息跟踪功能(如can be enabled in the client的WCF跟踪),或者您可能必须自己构建一些内容才能执行此操作。

但是,如果记录消息至关重要,请不要依赖log4net。