Есть ли способ предотвратить log4net для регистрации одного и того же исключения n-times? Я хочу добиться того, что если последнее исключение совпадает с фактическим исключением, я не хочу регистрироваться.Как предотвратить повторное исключение в log4net?
ответ
Буферизирующий appender с параметром lossy, установленным в true, выполнит трюк, если вы готовы написать собственный класс для подключения к нему. Вот код для добавляющим происходящего в BufferingAppenderSkeleton
if (this.m_cb == null || this.m_bufferSize <= 1)
{
if (!this.m_lossy || (this.m_evaluator != null && this.m_evaluator.IsTriggeringEvent(loggingEvent)) || (this.m_lossyEvaluator != null && this.m_lossyEvaluator.IsTriggeringEvent(loggingEvent)))
{
if (this.m_eventMustBeFixed)
{
loggingEvent.Fix = this.Fix;
}
this.SendBuffer(new LoggingEvent[]
{
loggingEvent
});
}
}
Как вы можете видеть, если вы установите размер буфера через 1, сжимал в истинен и оценщик, вы можете решить, чтобы в проходе событий если this.m_lossyEvaluator.IsTriggeringEvent(loggingEvent)
возвращает true.
Таким образом, вы можете создать пользовательский ITriggeringEventEvaluator
и позволить ему хранить последнее исключение, которое прошло, а затем для каждого последующего исключения сравнивайте оба значения. Если они являются одинаковыми, возвращает false, если не возвращать true и изменять последнее значение исключения. Затем создайте BufferingForwardingAppender
и настройте его с помощью вашего оценщика.
Этот ответ носит чисто технический характер, но комментарии к вашему вопросу должны быть учтены. – samy
- 1. Повторное исключение в Android
- 2. Повторное исключение в C#
- 3. Исключение журнала log4net
- 4. log4net (common.logging) ошибочное исключение
- 5. предотвратить повторное заполнение viewdata
- 6. Исключение FileNotFoundException в log4net async
- 7. Как предотвратить повторное заполнение формы в Seam?
- 8. Как предотвратить исключение ZygoteInit?
- 9. Log4Net не регистрирует правильное исключение
- 10. ReactJS - предотвратить повторное оказание детей
- 11. Повторное выбрасывание исключение вопрос
- 12. Исключение, если Log4net настроен неправильно
- 13. Как предотвратить повторное использование Datagrid itemRenderers?
- 14. Как предотвратить повторное подключение метеора к серверу
- 15. Как предотвратить повторное замещение вторым регулярным выражением?
- 16. Как предотвратить повторное перезапуск приложения mod_wsgi django?
- 17. Как предотвратить повторное заполнение данных этой формы?
- 18. asyncio: предотвратить повторное выполнение задачи
- 19. Как предотвратить повторное использование клеток uicollectionview
- 20. WordPress - Как предотвратить повторное заполнение формы?
- 21. как предотвратить повторное представление после нажмите f5
- 22. Повторное исключение, не требующее бросков Исключение?
- 23. Как предотвратить исключение Runtime в NamedQueries
- 24. Как предотвратить исключение System.IndexOutOfRangeException в LINQ WHERE?
- 25. Необходимо предотвратить повторное выражение PHP regex
- 26. Как предотвратить повторное использование меню в функции переключателя?
- 27. Как предотвратить повторное включение одинаковых данных в таблицу?
- 28. Как предотвратить повторное создание активности в меню навигационного ящика нажмите
- 29. Как предотвратить повторное использование viewpager в элементе listview
- 30. Как предотвратить слишком быстрое повторное представление формы в приложении rails?
Как выглядит ваш код регистрации на данный момент? [MVC] (http://stackoverflow.com/help/mcve) всегда замечательный. – Tobbe
Где код? log4net делает * не * записывает одно и то же исключение n раз - это код обработки исключений *, который делает это. Если вы не хотите регистрировать каждый метод, просто не делайте этого. Зарегистрируйтесь в наивысшей точке иерархии вызовов, например, в действии контроллера MVC или обработчике команд в приложении WPF. Или измените уровень серьезности различных вызовов журналов и примените фильтры с наивысшей серьезностью вверху, ниже (подробный, отлаживаемый) на более низких уровнях. –
Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/ 1208541/log4net-any-filter-for-logging-only-the-nth-message/4308493 # 4308493) – stuartd