2016-01-06 22 views
5

私はAPIアプリケーションを構築しています。すべての未処理の例外ASP.NET 5で使用されるべきである何ASP.NET 5:すべての未処理の例外をキャッチしてログに記録するには、どのような方法が推奨されますか?

protected void Application_Error() 
{ 
    var exception = Server.GetLastError(); 
    _logger.FatalException("Fatal error.", exception); 
} 

をキャッチするのApplication_Error()は旧ASP.NETでは がでしたか?

+0

ありこれについての素晴らしい説明ですMicrosoft.Framework.Loggingという名前空間からILoggerProviderとILoggerを使用します。詳細はこちらをご覧ください。 http://stackoverflow.com/questions/28385889/global-exception-handling-in-asp-net-5 githubにも同じサンプルがあります。 https://github.com/aspnet/Diagnostics/tree/dev/samples/ExceptionHandlerSample –

+0

答えが少し古くなっています –

答えて

5

解決策は、カスタムフィルタを追加することです。

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(options => options.Filters.Add(new MyExceptionFilter())); 
} 

今カスタムフィルタがIExceptionFilterから派生する必要があります:これはそれを行うことができる方法である

public class MyExceptionFilter : ActionFilterAttribute, IExceptionFilter 
{ 
    public void OnException(ExceptionContext context) 
    { 

    } 
} 

残念ながら、それはStartup.Configuration(中に例外をキャッチしていません)

+0

aspで "Application_Error"のようにこれを行うより良い方法を見つけることができましたか?ネット4 –

関連する問題