记录到事件中心
适用于:所有 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>
相关策略
后续步骤
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例