[英]Determine which middleware answered on ASP.NET Core websites
有沒有辦法確定(回來)哪個中間件回答了請求? 是否有某個堆棧跟蹤或類似的東西?
我所尋求的可能是一個堆棧跟蹤,直到被調用的最后一個中間件,可以在httpcontext對象中訪問。
我可以添加一些假的中間件只是設置標志,但我更喜歡有一些不需要添加代碼的東西。
例如,區分靜態文件和MVC服務的請求(這是一個例子,但並非詳盡無遺,我有幾個中間件提供響應,我希望能夠識別哪一個)。
ASP.NET Core Logging API已經提供了您所需的功能。 您可以獲得以下輸出:
info:Microsoft.AspNetCore.Hosting.Internal.WebHost [1]
請求啟動HTTP / 1.1 GET http:// localhost:5000 / api / todo / 0info:Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1]使用參數(0)執行操作方法TodoApi.Controllers.TodoController.GetById(TodoApi) - ModelState有效
info:Microsoft.AspNetCore.Hosting.Internal.WebHost [1]請求啟動HTTP / 1.1 GET https:// localhost:44301 / css / bootstrap.css
info:Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware [2]發送文件。 請求路徑:'/ css / bootstrap.css'。 物理路徑:XXX
實現此目的的最簡單方法是創建一個appsettings.Development.json
文件,您可以在其中設置以下配置:
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
},
"Console":
{
"IncludeScopes": true
}
}
}
默認情況下,您將能夠在控制台中查看日志。 您可以使用不同的ILoggerProvider
更改日志的顯示ILoggerProvider
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.