我在azure apim中创建了一个诊断设置,并将日志发送到事件中心。
但是现在的要求是我只需要将错误日志从azure api管理传递到事件中心。当前设置会将所有成功和失败日志传递到事件中心。
有什么方法可以过滤日志,然后再将其发送到事件中心或仅记录错误。
答案 0 :(得分:2)
要实现此目的,我将检查响应状态代码,并仅在outbound
部分中的错误情况下发送给eventhub,例如all operations
政策的一部分:
<policies>
<inbound>
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
<choose>
<when condition="@(context.Response.StatusCode.ToString() >= "400")">
<log-to-eventhub logger-id ="ehLogger">
@(...)
</log-to-eventhub>
</when>
<otherwise>
</otherwise>
</choose>
</outbound>
<on-error>
<base />
<log-to-eventhub logger-id ="ehLogger">
@(...)
</log-to-eventhub>
</on-error>
</policies>
这是针对来自后端的响应错误。如果您是指请求/策略处理中发生的错误,则只能从on-error
部分发送。有关更多信息,请参见here。