什么是“可靠”的记录?

所以,前几天我和一个人谈论企业库日志应用程序块和log4net.

我注意到的是log4net声称:

log4net is not reliable. It is a best-effort and fail-stop logging system.

令人惊讶的是,我试图找出Enterprise Library日志记录是否“可靠”.这是我可以找到明确使用单词“reliable”的所有内容. (请注意,它来自2004版)

所以,这让我很好奇,究竟什么是“可靠的”伐木?如果有人知道Enterprise Library Logging应用程序块是否可靠(在当前版本中),那么请他们指出一些明确说明这一点的文档吗?

谢谢.

最佳答案 大多数日志库(例如log4net和Enterprise Library)选择吞下可能在日志记录过程中抛出的异常,以防止应用程序停止.因此,这些库不能称为“可靠”(根据log4net文档).

在我看来,未能记录事件是一个严重的失败,不应该被扫地.黑客可能会滥用缺少的日志消息来隐藏他们的踪迹,或者至少是因为它更难以找到问题的根本原因.

对我来说,这是构建一个名为CuttingEdge.Logging的日志记录库的原因之一.TrowEdge.Logging中的日志记录提供程序将始终在无法记录事件时抛出异常.通过为某个记录器配置“回退提供程序”,用户可以防止异常冒泡调用堆栈,并让回退提供程序记录原始消息和失败的记录器抛出的异常.后备提供程序本身也可以配置回退提供程序.此机制使得在使用CuttingEdge.Logging时不会记录异常.

点赞