У меня есть приложение Web Api, у которого Elmah настроен и работает, журналы создаются нормально.Elmah не фильтрует/intecepting ошибки в web api
Чтобы скрыть/удалить важные данные из журналов, которые я пробовал this, но он не работает для моих веб-контроллеров Api. Фильтр попадает только при возникновении ошибки в конвейере MVC (в проекте есть MVC и Web API-контроллеры).
Я проверил this вопрос тоже, но мой конфигурационный файл, кажется, OK:
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
[...]
<location path="." inheritInChildApplications="false">
<system.web>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
[..]
</system.web>
</location>
[...]
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
</system.webServer>
Фильтр в Global.asax:
public void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e)
{
var ctx = e.Context as HttpContext;
if (ctx == null) return;
ElmahDataFilter.Apply(e, ctx);
}
Как дополнительная информация, если я закомментировать System.Web > httpModules, журнал все еще создается нормально.
Какие у вас есть ELMAH nuget? – ThomasArdal
elmah 1.2.2, который имеет зависимость от elmah.corelibrary (1.2.2 тоже) –