2016-05-17 4 views
0

Я хочу добавить исключения в файл с использованием фильтров исключений. это мой интерфейс ILog.log exceptions using Исключительный фильтр

public interface ILog 
{ 
    void Log(Importance importance, Func<string> message); 

    void Log(Importance importance, Func<string> message, Exception exception); 
} 

Как я могу регистрировать исключения в методе OnExceptipn ниже?

public class LoggingExceptionFilter : ExceptionFilterAttribute 
{ 
    private readonly ILog _log; 

    public LoggingExceptionFilter(ILogFactory logFactory) 
    { 
     _log = logFactory.Create("LoggingExceptionFilter"); 
    } 

    public override void OnException(ExceptionContext context) 
    { 
     // what to do here? 
    } 
} 

ответ

1

вы можете просто захватить исключение, как это: Exception ex = context.Exception; И залогируете исключение, используя вашу библиотеку.

Независимо от того, что вы хотите сделать после этого, зависит от того, хотите ли вы продолжить выполнение или вернуть ошибку клиенту. Например, у меня есть этот фрагмент в проектах веб-API для возврата соответствующего кода ошибки HTTP:

HttpStatusCode statuscode; 

if (context.Exception is HttpResponseException) 
{ 
    var HTTPex = (HttpResponseException)context.Exception; 
    statuscode = HTTPex.Response.StatusCode; 
} 
else 
{ 
    statuscode = HttpStatusCode.InternalServerError; 
} 

context.response = response; 
Смежные вопросы