记录到事件中心

适用于:所有 API 管理层级

log-to-eventhub 策略将指定格式的消息发送到记录器实体定义的事件中心。 从名称可以看出,此策略用于保存所选请求或响应上下文信息,以便进行联机或脱机分析。

注意

如需配置事件中心和记录事件的分步指南,请参阅如何在 Azure API 管理中将事件记录到 Azure 事件中心

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略

策略语句

<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
  Expression returning a string to be logged
</log-to-eventhub>

属性

属性 说明 需要 默认
logger-id 注册到 API 管理服务的记录器的 ID。 不允许使用策略表达式。 空值
partition-id 指定在其中发送消息的分区的索引。 不允许使用策略表达式。 可选。 不要在使用 partition-key 的情况下使用。 空值
partition-key 指定在发送消息时用于分区分配的值。 允许使用策略表达式。 可选。 不要在使用 partition-id 的情况下使用。 空值

使用情况

使用注意事项

  • 该策略不受 Application Insights 采样的影响。 策略的所有调用都会被记录。
  • 允许从此策略发送到事件中心的最大消息大小为 200 KB。 在传输到事件中心之前,较大的消息将自动截断为 200 KB。

示例

可以将任何字符串用作要记录到事件中心的值。 在以下示例中,所有入站调用的日期和时间、部署服务名称、请求 ID、IP 地址和操作名称都记录到以 contoso-logger ID 注册的事件中心记录器。

<policies>
  <inbound>
    <log-to-eventhub logger-id ='contoso-logger'>
      @( string.Join(",", DateTime.UtcNow, context.Deployment.ServiceName, context.RequestId, context.Request.IpAddress, context.Operation.Name) )
    </log-to-eventhub>
  </inbound>
  <outbound>
  </outbound>
</policies>

后续步骤

有关使用策略的详细信息,请参阅: