【问题标题】:How to add extended properties to Enterprise Library Tracer?如何向 Enterprise Library Tracer 添加扩展属性?
【发布时间】:2013-10-10 04:54:12
【问题描述】:

我正在使用 Enterprise Library 6 在 ASP.NET MVC 4 Web 应用程序上实现日志记录和用户跟踪。我正在使用 Tracers 来实现这一点,并且正在将 LogEntries 写入数据库。这很好用,但是现在,我想在 Tracer 条目中添加一些额外的信息,添加到 ExtendedProperties 字段中。我可以在普通的 LogEntry 对象上执行此操作,但我似乎无法在 Tracer 上执行此操作。 有什么方法可以实现吗?

这是我正在做的事情:

using(traceManager.StartTrace(LogCategory.UserTracing.ToString(), activityId))
{
Doit();
}

即使我将 Tracer 分配给一个变量,我也无法对它正在写入的日志条目产生任何影响。我也检查了 TraceManager 类,但它也与此无关。

我想要达到的效果如下:

LogEntry e = new LogEntry();
e.ExtendedProperties.Add("key", "value");

提前致谢,

罗伯特

【问题讨论】:

    标签: c# asp.net-mvc-4 logging enterprise-library enterprise-library-6


    【解决方案1】:

    Tracer 类不公开创建的LogEntry,因此无法实现您想要的开箱即用。

    添加扩展属性支持的最简单方法可能是获取Tracer 的源代码并创建您自己的接受扩展属性的自定义实现。您还可以创建一个使用自定义Tracer 的自定义TraceManager

    另请注意,开箱即用的FormattedDatabaseTraceListener 不会记录扩展属性,因此您需要创建一个自定义跟踪侦听器来执行此操作(您可以在Enterprise Library Sample Projects 找到一种方法)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多