Я использую ServiceStack и ServiceStack.Logging.Log4Net. С минимальной конфигурацией в моем файле AppHost:

log4net.Config.XmlConfigurator.Configure();
LogManager.LogFactory = new Log4NetFactory(true);

Обработчик запросов не найден, исключения (т. Е. Маршрут не был найден) волшебным образом подбираются и регистрируются. Я не хочу регистрировать эти исключения, но я не могу понять, как их исключить.

Я пробовал установить собственный обработчик исключений:

ExceptionHandler = _appExceptionLogger.OnAppHostException;

Но, похоже, это не касается этих исключений.

2
Dan 14 Янв 2014 в 20:21
Это не та же проблема.
 – 
Dan
15 Янв 2014 в 15:12

1 ответ

Лучший ответ

Итак, я поискал в исходном коде ServiceStack строку, которая регистрировалась, и обнаружил, что она регистрировалась класс NotFoundHttpHandler

Это означает, что я могу переопределить поведение журнала, добавив настраиваемый журнал в мою конфигурацию log4net:

ServiceStack v3:

<logger name="ServiceStack.WebHost.Endpoints.Support.NotFoundHttpHandler">
    <level value="OFF" />
</logger>

ServiceStack v4:

<logger name="ServiceStack.Host.Handlers.NotFoundHttpHandler">
    <level value="OFF" />
</logger>
4
Scott 15 Янв 2014 в 20:31
1
Хорошая находка. Я также добавил v4 к вашему ответу, так как это может иметь отношение к другим. Рад, что ты нашел решение.
 – 
Scott
15 Янв 2014 в 20:32