是否可以只将错误日志发送到事件中心?
is it possible to send only error logs to event hub?
我在 azure apim 中创建了一个诊断设置并将日志发送到事件中心。
但现在的要求是我只需要将错误日志从 azure api 管理传递到事件 hub.Current 设置将所有成功和失败日志传递到事件中心。
有没有什么方法可以在将日志发送到事件中心之前过滤日志或仅记录错误。
为了实现这一点,我会检查响应状态代码,并且仅在 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。
我在 azure apim 中创建了一个诊断设置并将日志发送到事件中心。
但现在的要求是我只需要将错误日志从 azure api 管理传递到事件 hub.Current 设置将所有成功和失败日志传递到事件中心。
有没有什么方法可以在将日志发送到事件中心之前过滤日志或仅记录错误。
为了实现这一点,我会检查响应状态代码,并且仅在 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。