获取log4net ADONetAppender的条目ID

我在Web应用程序中使用log4net,并将所有页面错误记录到SQL服务器 . 我想知道是否有任何方法可以检索由它生成的条目ID . 我要离开这里找到的文档

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

我想使用此ID作为我可以向客户显示的参考号,以便他们可以联系客户支持以在系统中查找而不必通过日志文件 .

回答(3)

3 years ago

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

  • 使用GUID . 您可以在应用程序中轻松生成它,并将满足您的大部分目的 . 缺点:如果客户试图通过电话告诉您的支持人员,可能会给客户带来不便 . 如果您只有电子邮件支持,那么这可能不是问题 .

  • 考虑在日志记录框架之外创建事件编号 . 快速调用存储过程,该存储过程返回您在日志表中的可空字段中保存的ID .

  • 以上的组合:使用Guid并在登录后调用创建事件的存储过程并返回ID .

编写返回ID的appender会在您的应用程序和通常没有的appender之间创建依赖关系:Log4net的设计在日志记录和写入日志消息之间有明确的区别 . 你需要的追加器会影响这种分离 .

3 years ago

由于ID是由数据库生成的,而不是由log4net生成的,因此我不相信您可以获得此信息 .

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

3 years ago

我不确定它是否可行,但是您可以在log4net上下文中为log4net结束编写自己的Appender .

Howto writing an appender for log4net:

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

Context-Description:

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