Откройте логи ошибки из продакшена. Видите стек-трейс? Он полон
<>c__DisplayClass2_0, d__5``1.MoveNext() и прочих артефактов, которые сгенерировал компилятор. Это не ошибка — это просто то, как .NET преобразует современный C# в IL. Но это делает поиск проблемы медленнее, чем нужно.Demystifier восстанавливает оригинальный вид кода:
• Вместо
ValueTuple``2 param показывает (string val, bool) param• Вместо
Func``1 показывает Func<string>•
async методы помечает как async Task<string>• Локальные функции и лямбды показывает с контекстом
Как применить
Вызовите
exception.Demystify() и передайте результат:try { /* ваш код */ }
catch (Exception ex)
{
logger.LogError(ex.Demystify(), "Ошибка");
}Анализ стека стоит ресурсов. На высоконагруженной системе вызывать Demystify для каждого исключения неэкономно. Используйте его выборочно — для критических путей, для отладки в development окружении или для редких, но важных ошибок.
➡️ Репозиторий либы
🐸Библиотека шарписта
#sharp_view
