是否可以仅将错误日志发送到事件中心?

时间:2020-06-26 10:12:11

标签: azure azure-api-management azure-eventhub azure-eventhub-capture

我在azure apim中创建了一个诊断设置,并将日志发送到事件中心。

但是现在的要求是我只需要将错误日志从azure api管理传递到事件中心。当前设置会将所有成功和失败日志传递到事件中心。

有什么方法可以过滤日志,然后再将其发送到事件中心或仅记录错误。

1 个答案:

答案 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