Próbuję filtrować mojego appendera w zależności od typu rejestrowanego wyjątku. Czy jest to możliwe w log4net?Filtr dołączania Log4Net dla określonego typu wyjątku?
6
A
Odpowiedz
9
log4net nie obsługuje tego bezpośrednio. Możesz jednak dość łatwo zaimplementować własny filtr, korzystając z interfejsu IFilter
lub klasy FilterSkeleton
(zarówno w przestrzeni nazw log4net.Filter
).
Coś jak to powinno załatwić sprawę:
public class ExceptionTypeFilter : FilterSkeleton
{
override public FilterDecision Decide(LoggingEvent loggingEvent)
{
var ex = loggingEvent.ExceptionObject as YourExceptionType;
return (ex != null) ? FilterDecision.Accept : FilterDecision.Deny;
}
}
Filtr ten można następnie wykorzystać jak zwykły filtr. Aby uzyskać więcej informacji, możesz zapoznać się z kodem źródłowym standardowych filtrów log4net.
Powiązane problemy
- 1. Metoda testowania jednostkowego dla określonego wyjątku
- 2. Jak ustawić Json.NET ContractSerializer dla określonego określonego typu zamiast globalnie?
- 3. Drupal 7 hook_menu dla określonego typu zawartości
- 4. Zespoły skanowania Autofac dla określonego typu klasy
- 5. Otwarte QFile dla dołączania
- 6. Sprawdź wsparcie dla przeglądarki dla określonego typu Mime?
- 7. Powtórz wszystkie subviews określonego typu
- 8. Kiedy używać nowego wyjątku typu:
- 9. filtr log4net - jak pisać i filtrować, aby ignorować logi
- 10. Wymuszenie szablonu variadic określonego typu
- 11. Adnotacja dotycząca określonego typu danych
- 12. Filtry Log4Net "LUB"
- 13. Jak wyszukiwać i wywoływać .Net TypeConverter dla określonego typu?
- 14. Czy jQuery może modyfikować CSS dla określonego typu mediów?
- 15. Python 3 Adnotacje: wpisz wskazówkę dla listy określonego typu (PyCharm)
- 16. Prism 4 ILoggerFacade dla Log4Net?
- 17. Konfiguracja log4net dla aplikacji konsoli
- 18. Jak mogę powiedzieć MacVimowi, aby zawsze używał określonego podświetlania składni dla określonego typu pliku?
- 19. Zapisywanie wszystkich błędów określonego typu wewnątrz modułu
- 20. Trace Routing dla określonego portu
- 21. Zastosuj filtr rozmycia do określonego obszaru obrazu svg
- 22. Unit Test & Log4net
- 23. Sprawdzanie, czy adnotacja jest określonego typu
- 24. Omiń elementy określonego typu w pętli foreach
- 25. Casting rodzajowy klasy bez określonego typu
- 26. Konwertuj Newtonsoft.Json.Linq.JArray na listę określonego typu obiektu
- 27. ActionFilterAttribute - zastosowanie do działań określonego kontrolera typu
- 28. Android: Pobieranie listy wszystkich plików określonego typu
- 29. Pobieranie faktów określonego typu z pamięci roboczej
- 30. Jak sprawdzić, czy obiekt jest określonego typu?
Ten kod zapisuje tylko określony typ wyjątku. Jeśli chcesz odfiltrować określony wyjątek, możesz cofnąć Akceptuj i odrzuć. FilterDecision.Accept oznacza rejestrację. Odmów oznacza, że tego nie rejestrujesz. Prawdopodobnie oczywiste, ale zabrało mi chwilę na przemyślenie. :) – scw
A jeśli masz więcej niż jeden filtr, może być konieczne użycie FilterDecision.Neutral. – scw