Фильтр по тексту исключения в elmah
-
21-09-2019 - |
Вопрос
Есть ли способ фильтровать исключения в elma с помощью сообщения об исключении?
Примеры:
"Исключение System.Web.HttpException:Время ожидания запроса истекло ". Я не хочу отфильтровывать все HttpException, а только запросы с истекшим временем ожидания.
"Исключение System.Web.HttpException:Превышена максимальная длина запроса".
Чего я не хочу делать, так это писать для этого собственный код.Итак, возможно ли это сделать с помощью конфигурации buildin-web.config?
Спасибо!
Решение
Да, ты можешь.Просто используйте регулярное выражение для запроса сообщения.Смотрите приведенный ниже пример для получения подробной информации о том, как сравнить сообщение об исключении.
<errorFilter>
<test>
<!-- http://groups.google.com/group/elmah/t/cbe82cee76cc6321 -->
<and>
<is-type binding='Exception'
type='System.Web.HttpException, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' />
<regex binding='Exception.Message'
pattern='invalid\s+viewstate'
caseSensitive='false' />
<regex binding='Context.Request.UserAgent'
pattern='Trident/4(\.[0-9])*'
caseSensitive='false' />
</and>
</test>
</errorFilter>
Другие советы
Вы можете настроить обработчик событий в вашем global.asax, чтобы избежать некрасивых настроек регулярных выражений конфигурации:
void ErrorMail_Filtering(object sender, Elmah.ExceptionFilterEventArgs e)
{
if (e.Exception.Message.Contains("Request timed out"))
e.Dismiss();
}
Видишь Фильтрация ошибок.