我在 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 的 appender 会在您的应用程序和 appender 之间创建一个您通常没有的依赖关系:Log4net 的设计明确区分了记录和在某处写入日志消息。您需要的附加程序会影响该分离。
由于 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