【发布时间】:2010-08-18 18:18:54
【问题描述】:
我在 Web 应用程序中使用 log4net,并将所有页面错误记录到 SQL 服务器。我想知道是否有任何方法可以检索它生成的条目 ID。我要离开这里找到的文档
http://logging.apache.org/log4net/release/config-examples.html
我想将此 ID 用作我可以向客户显示的参考号,以便他们可以联系客户支持在系统中查找,而不必通过日志文件。
【问题讨论】:
我在 Web 应用程序中使用 log4net,并将所有页面错误记录到 SQL 服务器。我想知道是否有任何方法可以检索它生成的条目 ID。我要离开这里找到的文档
http://logging.apache.org/log4net/release/config-examples.html
我想将此 ID 用作我可以向客户显示的参考号,以便他们可以联系客户支持在系统中查找,而不必通过日志文件。
【问题讨论】:
除了按照 floyddotnet 的建议编写自己的附加程序之外,您还可以考虑:
编写一个返回 ID 的附加程序会在您的应用程序和附加程序之间创建一个您通常没有的依赖关系:Log4net 的设计明确区分了记录和在某处写入日志消息。您需要的 appender 会影响这种分离。
【讨论】:
由于 ID 是由数据库而不是由 log4net 生成的,我认为您无法获得此信息。
我在使用 log4net 处理这种情况时所做的是在消息中包含一个日期时间戳,该时间戳可以精确到毫秒,并将其作为参考编号呈现给用户。然后您可以执行一个简单的 SQL 查询来获取日志表中的消息。
【讨论】:
我不确定它是否可行,但您可以为 log4net 编写自己的 Appender,最终将此信息存储在 log4net-context 中。
如何为 log4net 编写附加程序:
http://www.alteridem.net/2008/01/10/writing-an-appender-for-log4net/
上下文描述:
http://logging.apache.org/log4net/release/manual/contexts.html
【讨论】: