在.Net中创建一个具有节流模式功能的记录器



我必须在.NET中创建一个Logger,它应该在正常和节流模式下工作。

当由于某种原因(比如服务器未启动)出现连续错误或相同错误时,它应该停止日志记录(意味着它应该切换到节流模式),因为如果服务器数天未启动,多个日志文件将占用磁盘中的大量空间。

当连续错误或相同错误停止时,它应该返回到正常模式。

有人能帮我讲一些如何实现这一目标的逻辑吗?我正在使用Microsoft企业库来创建记录器。

Enterprise Library不会让您知道发生了故障。它会接受这个例外。如果您配置了错误专用源,它将把LogEntry写入错误专用源。

您可以编写一个包含您的逻辑的自定义跟踪侦听器,也可以修改块以包含您的专用逻辑。

我假设您想要编写一个自定义跟踪侦听器。

鉴于以上情况,我认为您有两个选择:在您的自定义跟踪侦听器中执行日志记录前检查以验证某组先决条件(服务器已启动等),或者在您的定制跟踪侦听器针对错误特殊源执行日志记录后检查。对于后者,您需要知道错误特殊源的位置和格式,并需要对其进行解析,以确定是否满足您的错误条件(每分钟错误数或连续错误数等)

这两种解决方案都有缺点。

那么:对于特殊来源的错误,使用RollingFlatFileTraceListener集进行覆盖,从而限制磁盘上的大小(您可以选择文件的大小)?如果需要,您甚至可以获取日志信息。这看起来是双赢的。

最新更新