获取log4net ADONetAppender的入口ID

3
我在一个Web应用程序中使用log4net,并将所有页面错误记录到SQL服务器中。我想知道是否有办法检索它生成的条目ID。我参考了这里的文档:http://logging.apache.org/log4net/release/config-examples.html。我想把这个ID作为参考号码给客户,这样他们可以联系客户支持人员在系统中查找,而不必通过日志文件。
3个回答

4
除了像floyddotnet建议的那样编写自己的appender,您还可以考虑以下内容:
  1. 使用GUID。您可以在应用程序中轻松生成它,并且可以满足大多数需求。缺点是:如果客户在电话中试图告诉您的支持人员有关此GUID,则可能会给客户带来不便。如果您只提供电子邮件支持,则可能不是问题。
  2. 考虑在日志框架之外创建事件编号。快速调用存储过程返回ID并将其保存在日志表中的可空字段中即可。
  3. 上述两者的组合:使用GUID,在记录日志后调用存储过程创建一个“事件”并返回其ID。
编写返回ID的appender会在您的应用程序和通常没有的appenders之间创建依赖关系:Log4net的设计具有清晰的分离,即在记录日志消息与将其写入某个地方之间。您需要的appender将影响这种分离。

我选择了SP路线。效果非常好! - Steven

1

由于ID是由数据库而不是log4net生成的,我认为这些信息对您不可用。

在这种情况下,我使用log4net所做的是在消息中包含一个精确到毫秒的日期时间戳,并将其作为参考编号呈现给用户。然后,您可以执行简单的SQL查询来获取日志表中的消息。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接