2016-09-12 30 views
0

使用ILogger我想使用.NET的核心記錄儀在這樣一個ExceptionFilter:在ExceptionFilter

public class GlobalExceptionAttribute : ExceptionFilterAttribute 
{ 
    private readonly ILogger<Inspection> _logger; 
    public GlobalExceptionAttribute(ILogger<Inspection> logger) 
    { 
     _logger = logger; 
    } 
    public override void OnException(ExceptionContext context) 
    { 
     _logger.LogError("Error"); 
    } 
    ... 
} 

但在我的控制,這導致的錯誤信息,告訴我,我需要提供一個記錄器作爲一個參數:

[GlobalException] 
public class Inspection : Controller 
{ 
... 

我其實想要記錄器由.NET核心DI自動注入。我如何存檔?

+0

您能否發佈特定的錯誤消息 –

+0

您需要使用ServiceFilter屬性。 [ASP.Net Core(MVC 6)的可能的重複 - 注入服務到Action Filter中](http://stackoverflow.com/questions/36109052/asp-net-core-mvc-6-inject-service-into-action-過濾)。 – Set

回答

0

我不會在異常過濾器屬性中添加日誌記錄。我會讓異常處理程序執行日誌記錄。因此,我仍然有一個記錄的中心位置,任何異常過濾器都會拋出異常。簡而言之,我將實現使我的異常過濾器輕量化並分離日誌記錄職責。我沒有準備好代碼,但會稍後嘗試發佈。

相關問題