获取log4net ADONetAppender的条目ID

时间:2010-08-18 18:18:55

标签: log4net adonetappender

我在网络应用中使用log4net,并将所有页面错误记录到SQL服务器。我想知道是否有任何方法可以检索由它生成的条目ID。我要摘下这里的文件

http://logging.apache.org/log4net/release/config-examples.html

我想将此ID用作我可以向客户展示的参考号,以便他们可以联系客户支持人员在系统中查找,而不必查看日志文件。

3 个答案:

答案 0 :(得分:4)

除了编写自己的appender,因为floyddotnet建议你可以考虑:

  1. 使用GUID。您可以在应用程序中轻松生成它,并将满足您的大部分目的。缺点:如果客户试图通过电话告诉您的支持,可能会给客户带来不便。如果您只有电子邮件支持,那么这可能不是问题。
  2. 考虑在日志框架之外创建事件编号。快速调用存储过程,该存储过程返回您在日志表中的可空字段中保存的ID。
  3. 上述内容的组合:使用Guid并在登录后调用创建事件的存储过程并返回ID。
  4. 编写一个返回ID的appender会在你通常没有的应用程序和appender之间创建一个依赖关系:Log4net的设计在某处记录和写入日志消息之间有明确的区别。你需要的追加器会影响这种分离。

答案 1 :(得分:1)

由于ID是由数据库而不是log4net生成的,因此我不相信您可以使用此信息。

我在使用log4net进行此类条件时所做的是在消息中包含一个日期时间戳,该时间戳下降到毫秒并将其作为参考号提供给用户。然后,您可以执行简单的SQL查询以获取日志表中的消息。

答案 2 :(得分:0)

我不确定它是否可行,但您可以编写自己的Appender for log4net,将此信息存储在log4net上下文中。

如何为log4net写一个appender:

http://www.alteridem.net/2008/01/10/writing-an-appender-for-log4net/

<强>上下文描述:

http://logging.apache.org/log4net/release/manual/contexts.html