Добрый день!
Подскажите пожалуйста, можно ли исключить из логирования ошибки, возникающие в определенных классах, если я их обрабатываю и логирую вручную?
Есть у меня класс для обработки ошибок, который возвращает пользовательскую ошибку Error, пряча стек, реальную ошибку и прочее.
public class ServiceErrorHandler(ILogger<Error> logger) : IServiceErrorHandler
{
private readonly ILogger _logger = logger;
public Error HandleError(Exception exception)
{
_logger.LogError(exception: exception, "API error");
//тут обрабатываем ошибку exception и создаем объект Error
return Error("сообщение для пользователя");
}
}
Есть у меня сервис, в котором я использую ручной обработчик (ResultApi - класс-обертка для ответов от сервиса):
public class MyService(IServiceErrorHandler serviceErrorHandler) {
private readonly IServiceErrorHandler _serviceErrorHandler = serviceErrorHandler;
public async Task<ResultApi> DoMaginc() {
try {
//magic
return ResultApi.Success();
}
catch (Exception ex) {
return Result.Failure(_serviceErrorHandler.HandleError(ex));
}
}
}
Проблема в том, что Logger выплевывает ошибку когда она случается + я сам пишу эту же ошибку в лог.