在服务结构跟踪中设置ETW事件级别

时间:2016-07-13 05:44:00

标签: tracing azure-service-fabric azure-diagnostics

使用visual studio创建服务结构应用程序项目时,您将获得EventSource(称为ServiceEventSource)的实现。例如,以下是方法实现之一:

    private const int ServiceRequestStopEventId = 6;
    [Event(ServiceRequestStopEventId, Level = EventLevel.Informational, Message = "Service request '{0}' finished", Keywords = Keywords.Requests)]
    public void ServiceRequestStop(string requestTypeName)
    {
        WriteEvent(ServiceRequestStopEventId, requestTypeName);
    }

如您所见,此方法具有Event属性,该属性具有Level参数集。

  1. 我在哪里设置Level参数值?
  2. 我认为设置此Level的参数值将显示生成的输出量。我是对的吗?
  3. 我可以在运行时动态修改此Level参数值吗?

2 个答案:

答案 0 :(得分:2)

  1. 您只能在Level属性中设置Event
  2. 生成的输出量取决于日志的使用者。如果没有消费者或听众,则不会在任何级别生成事件。我们可以说水平取决于产出量,但只有在有此类事件的消费者的情况下。
  3. 不,您无法动态修改关卡。为此,您可以使用两个具有相同签名和不同级别的方法。
  4. 您可以找到有关ETW及其配置的所有有趣信息here

答案 1 :(得分:1)

代码仅指示有关其生成的ETW事件的信息。设置级别表示事件将放在哪个类别中。它不会配置是否输出事件。日志记录工具确定是否记录了它。您通常可以在运行时在日志记录工具中更改该级别。

一些有用的链接:

  1. 配置WAD: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostics-how-to-setup-wad/

  2. 使用弹性搜索 https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostic-how-to-use-elasticsearch/

  3. 使用OMS分析事件。 https://azure.microsoft.com/en-us/documentation/articles/log-analytics-service-fabric/

  4. 使用Service Profiler(演员) https://www.azureserviceprofiler.com/