在服务结构跟踪中设置 ETW 事件级别
Setting ETW event level in service fabric tracing
当您使用 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);
}
如您所见,此方法具有设置了 Level 参数的 Event 属性。
- 我应该在哪里设置 Level 参数值?
- 我认为设置此级别的参数值将显示生成了多少输出。我说得对吗?
- 我可以在 运行 时随意动态修改这个 Level 参数值吗?
该代码仅指示有关它生成的 ETW 事件的信息。设置级别指示事件将被放置在哪个类别中。它不配置事件是否输出。记录工具决定是否记录。您通常可以在 运行 时间在日志记录工具中更改该级别。
一些有用的链接:
- 您只能在
Event
属性中设置 Level
。
- 生成的输出量取决于日志的使用者。如果没有消费者或侦听器,则不会在任何级别生成事件。我们可以说级别取决于输出量,但前提是有此类事件的消费者。
- 不,您不能动态修改关卡。为此,您可以使用两个具有相同签名和不同级别的方法。
您可以找到有关 ETW 及其配置的所有有趣信息here。
当您使用 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);
}
如您所见,此方法具有设置了 Level 参数的 Event 属性。
- 我应该在哪里设置 Level 参数值?
- 我认为设置此级别的参数值将显示生成了多少输出。我说得对吗?
- 我可以在 运行 时随意动态修改这个 Level 参数值吗?
该代码仅指示有关它生成的 ETW 事件的信息。设置级别指示事件将被放置在哪个类别中。它不配置事件是否输出。记录工具决定是否记录。您通常可以在 运行 时间在日志记录工具中更改该级别。
一些有用的链接:
- 您只能在
Event
属性中设置Level
。 - 生成的输出量取决于日志的使用者。如果没有消费者或侦听器,则不会在任何级别生成事件。我们可以说级别取决于输出量,但前提是有此类事件的消费者。
- 不,您不能动态修改关卡。为此,您可以使用两个具有相同签名和不同级别的方法。
您可以找到有关 ETW 及其配置的所有有趣信息here。