Ocelot中文文档-日志

原文: Ocelot中文文档-日志

目前,Ocelot使用标准的日志记录接口ILoggerFactory/ILogger 。 在IOcelotLogger / IOcelotLoggerFactory中提供了标准的asp.net core日志记录的一个实现。 因为Ocelot在日志中添加了一些额外的信息,如请求ID(如果已配置的话)。

这有个全局的错误处理程序,可以捕获所有异常并作为错误记录他们。

最后,如果日志记录设置为跟踪级别,Ocelot将记录开始,结束和任何抛出异常的中间件,这些异常可能非常有用。

不是使用标准框架的日志记录的原因是,我无法覆盖将IncludeScopes设置为true时记录的请求标识。

警告

如果您记录日志到控制台,您将获得糟糕的性能。 我遇到过很多关于Ocelot性能的问题,它始终记录调试级别的日志,并记录到控制台 :) 所以请确保您生产中记录了正确的东西 : )

posted on 2019-01-09 13:29 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10243754.html

Ocelot 提供了 AddDelegatingHandler 方法,用于在 Ocelot 网关中添加委托处理程序(Delegating Handler)。Delegating Handler 是一个用于处理 HTTP 请求和响应的中间件,类似于 ASP.NET Core 中的中间件,但是它是基于委托模式实现的,可以实现更加灵活的请求处理逻辑。 使用 AddDelegatingHandler 方法可以将自定义的委托处理程序添加到 Ocelot 网关中,比如用于鉴权、请求重试等。AddDelegatingHandler 方法的用法如下: ```csharp public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddOcelot().AddDelegatingHandler<MyDelegatingHandler>(); } ``` 其中,MyDelegatingHandler 是自定义的委托处理程序,需要继承 Ocelot.DelegatingHandler.DelegatingHandlerBase 类,并实现其中的 SendAsync 方法。SendAsync 方法是处理 HTTP 请求和响应的核心方法,可以在其中实现自定义的请求处理逻辑。 以下是一个自定义的委托处理程序的示例代码: ```csharp public class MyDelegatingHandler : DelegatingHandlerBase { public MyDelegatingHandler() { } public override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // 在此处实现自定义的请求处理逻辑 // ... // 调用下一个处理程序 var response = await base.SendAsync(request, cancellationToken); // 在此处实现自定义的响应处理逻辑 // ... return response; } } ``` 在 SendAsync 方法中,您可以实现自定义的请求处理逻辑,如鉴权、请求重试等,并调用 base.SendAsync 方法调用下一个处理程序。在下一个处理程序调用后,您还可以实现自定义的响应处理逻辑,如统计请求响应时间等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值