Несколько условий фильтра ELMAH - PullRequest
1 голос
/ 29 марта 2011

Я хотел знать, есть ли способ написать ELMAH для фильтрации журналов ошибок по следующей логике:

Если ошибка 404 на favicon.ico ИЛИ ошибка 404 на /1.xml ИЛИ ошибка 404 на /2.xml

Я нашел способ просто сделать это на favicon.ico, как показано:

 <errorFilter>
  <test>
    <and>
      <equal binding="HttpStatusCode" value="404" type="Int32" />
      <regex binding="Context.Request.ServerVariables['URL']" pattern="/favicon\.ico(\z|\?)" />
    </and>
  </test>
</errorFilter>

Но по какой-то причине я не могу понять, как это сделать для условий OR.Любая помощь будет высоко ценится.

1 Ответ

4 голосов
/ 31 марта 2011

Следующие действия помогут вам или иным способом:

<errorFilter>
  <test>
    <and>
      <equal binding="HttpStatusCode" value="404" type="Int32" />
      <or>
        <regex binding="Context.Request.ServerVariables['URL']" 
               pattern="/favicon\.ico(\z|\?)" />
        <regex binding="Context.Request.ServerVariables['URL']" 
               pattern="/[1-2]\.xml(\z|\?)" />
      </or>
    </and>
  </test>
</errorFilter>

В основном, это отфильтрует ошибки, если код состояния HTTP равен 404 и , один из шаблонов регулярных выражений, сгруппированных в элементе or, соответствует URL-адресу запроса.

...