В многоуровневом веб-приложении я хочу переместить всю регистрацию ошибок из слоев «Домен» и «Данные» в глобальный обработчик исключений, но я не уверен, каков компромисс.Я хочу удалить любой вызов журнала и заменить его более конкретным исключением (настраиваемым, если это необходимо) или удалить перехват:
try{
. . .
}
catch
{
Logger.Error('Info'); // <-- remove this for a: throw new CustomException('Info', ex);
throw; // <-- then, remove this line
}
В WebAPI настроен глобальный обработчик исключений в качестве промежуточного программного обеспечения,затем, как часть метода обработчика, я собираюсь регистрировать любое исключение
// Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseExceptionHandler(
error =>
{
GlobalExceptionHandler.ErrorHandling(error, env);
});
}
// GlobalExceptionHandler.cs
public static class GlobalExceptionHandler
{
public static void ErrorHandling(IApplicationBuilder errorApp, IHostingEnvironment env)
{
errorApp.Run(async context =>
{
.
.
.
Log.Current.Error(exception.Message, () => exception);
}
}
}
Может быть лучший подход, чтобы избежать дублирования записей журнала?