Фильтр по тексту исключения в elmah

Есть ли способ отфильтровать исключения в elma с помощью сообщения об исключении?

Примеры:
«System.Web.HttpException: истекло время ожидания запроса». Я не хочу отфильтровывать все HttpException, а только запросы с тайм-аутом.
«System.Web.HttpException: превышена максимальная длина запроса».

Я не хочу писать для этого собственный код. Так можно ли сделать это с помощью конфигурации buildin-web.config?

Спасибо!


person kcode    schedule 24.11.2009    source источник


Ответы (2)


Да, ты можешь. Просто используйте регулярное выражение, чтобы запросить сообщение. См. Пример ниже для получения подробной информации о том, как сравнить сообщение об исключении.

<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>
person Drew Freyling    schedule 30.03.2010
comment
Interigate - ›допросить. ;) - person Ian Grainger; 02.10.2013
comment
Спасибо @IanGrainger. Исправлено сейчас. - person Drew Freyling; 04.10.2013

Вы можете настроить обработчик событий в своем global.asax, чтобы избежать уродливых настроек регулярного выражения конфигурации:

void ErrorMail_Filtering(object sender, Elmah.ExceptionFilterEventArgs e) 
{     
    if (e.Exception.Message.Contains("Request timed out"))
        e.Dismiss(); 
}

См. Раздел Фильтрация ошибок.

person James Lawruk    schedule 12.01.2011