Pierwszy raz słyszę o markerach podczas czytania:
Sprawdzam dostępne metody dla obiektu Logger :
- http://www.slf4j.org/api/org/slf4j/Logger.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html
i znalezione interfejsy:
- http://www.slf4j.org/api/org/slf4j/Marker.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.html
Więcej szczegółowych informacji otrzymałem od:
ale nadal zdezorientowany ... Zauważ, że pytam dlaczego , a nie jak ich używać, więc nie jest to duplikat:
UPDATE Wygląda na to, że kiedy używasz markerów, musisz również napisać niestandardowy kod Java zamiast konfigurować w plikach XML lub .property ...
AKTUALIZACJA 2 Z http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator
Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
"This is a serious an error requiring the admin's attention",
new Exception("Just testing"));
grep
dzienników tekstowych.Odpowiedzi:
To jest przerobiona wersja mojej odpowiedzi na pytanie " Najlepsze praktyki używania Markerów w SLF4J / Logback ".
Markerów można używać do pokolorowania lub oznaczenia pojedynczego wyciągu dziennika. To, co zrobisz z tymi kolorami, czyli markerami, zależy wyłącznie od Ciebie. Jednak wydaje się, że dwa wzorce są wspólne dla użycia markera.
Wyzwalanie : Niektórym aplikantom można poinstruować, aby podjęli działanie w obecności określonego znacznika. Na przykład
SMTPAppender
można skonfigurować wysyłanie wiadomości e-mail za każdym razem, gdy zdarzenie rejestrowania jest oznaczoneNOTIFY_ADMIN
znacznikiem, niezależnie od poziomu dziennika. Zobacz wyzwalanie oparte na znacznikach w dokumentacji logowania. Możesz także łączyć poziomy dziennika i znaczniki do wyzwalania.Filtrowanie : znaczniki są bardzo przydatne do wyróżniania niektórych wartościowych zapisów dziennika. Na przykład możesz pokolorować / oznaczyć wszystkie dzienniki związane z trwałością (w różnych i wielu plikach klas) kolorem „DB”. Możesz wtedy filtrować według „DB”: wyłącz rejestrowanie z wyjątkiem instrukcji dziennika oznaczonych jako DB. Aby uzyskać więcej informacji, zapoznaj się z rozdziałem o filtrach w dokumentacji dziennika zwrotnego (wyszukaj MarkerFilter). Zwróć uwagę, że filtrowanie znaczników można przeprowadzić nie tylko przez wylogowanie, ale także za pomocą narzędzi do analizy dziennika.
Przed pojawieniem się Markerów, aby osiągnąć podobne zachowanie, mieliśmy możliwość 1) używania niestandardowych poziomów 2) używania zmodyfikowanych nazw rejestratorów. SLF4J API obecnie nie obsługuje poziomów niestandardowych. Podobnie jak w przypadku opcji 2, sufiksowanie (lub prefiksowanie) nazw rejestratorów jest możliwe, jeśli jeden lub dwa rejestratory wymagają modyfikacji. Podejście to staje się niepraktyczne, gdy tylko 3 lub więcej rejestratorów musi zostać podzielonych na podklasy, ponieważ powiązane pliki konfiguracyjne stają się niemożliwe do zarządzania.
Mimo że pojedynczy znacznik może być już bardzo przydatny, następna wersja SLF4J, tj. Wersja 2.0, pozwoli na użycie wielu znaczników w jednym wyciągu dziennika.
źródło