我正在使用ASP.NET Core 3.1为C#WebApi使用默认的Visual Studio项目模板。启动应用程序时,我看到控制台上记录了以下信息
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'webapi.Controllers.WeatherForecastController.Get (webapi)'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 0.8083ms 200 application/json; charset=utf-8
正如您所看到的,Microsoft.AspNetCore.Hosting.Diagnostics
已经在记录response time
和http status code
,但是log message
的所有部分都使得将这些作为特定的可搜索属性记录到我们的弹性搜索数据库中非常困难。
是否有任何方法可以从现有的诊断中间件中提取这些信息(响应时间和状态代码),而不必自己编写?
是,有,看看https://docs.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing事件源之一应该具有您所需要的。信息有些分散,但可行。