按相似性对log4net错误进行分组

时间:2009-04-16 17:21:18

标签: logging log4net error-logging

我们使用log4net记录各种Web应用程序的应用程序异常。目前,我们使用RollingLogFileAppender,其阈值为InfoSmtpAppender,阈值为Warn

问题是我们没有简单的方法按其内容对错误日志条目进行分组。我们经常看到某些错误,有些错误偶尔会出现。我们希望能够自动跟踪相同错误的发生。

从概念上讲这很简单 - 日志条目的最后一个,例如50个字符的模式匹配应该允许我们这样做。

有没有人实施过这样的解决方案,或者有人可以推荐更好的方法吗?

3 个答案:

答案 0 :(得分:1)

只需将您的行记录为XML(其他格式当然也会起作用)。

我们就是这样做的:

<USERID>GUID</USERID><ERRORCODE>INVALID_XML</ERRORCODE><DESCRIPTION>File x is not in correct xml format</DESCRIPTION>

然后我们解析日志文件并在datagridview中显示它们,其中包含errorcode,description,loglevel列。然后我们可以快速排序或过滤,例如ERRORCODE。

查看这些INVALID_XML条目的数据集将很快向我们显示日志文件中是否存在这些错误。

使用userIds,我们还可以看到客户端在登录时所做的所有呼叫。

答案 1 :(得分:1)

您可以尝试使用其他Appender(例如,DBAppender)(当然具有错误阈值),然后对结果表进行排序。

答案 2 :(得分:0)

我不认为这种解决方案是开箱即用的。但是,您可以定义自定义日志级别(或选择其中一个未使用的日志级别)以输出其自己的 ILog 以查找更常见的错误,并在“主”错误日志中过滤掉它们而不会过多麻烦。