W Javie Jak stworzyć własny poziom rejestrowania za pomocą Log4j (Konfiguracja Log4j 2)

Opublikowany: 2017-07-26
W Javie Jak stworzyć własny poziom logowania za pomocą Log4j 2

Jeśli potrzebujesz dodać własny poziom rejestrowania w Log4j, możesz to zrobić w następujący sposób. Będziesz musiał stworzyć własną klasę, która rozszerzy się z Level , Custom Log Levels z Apache Log4j 2.

Log4j to prosta i elastyczna logging framework . Rejestrowanie zapewnia programiście szczegółowy kontekst awarii aplikacji. Dzięki log4j możliwe jest włączenie rejestrowania w czasie wykonywania bez modyfikowania pliku binarnego aplikacji.

Pakiet log4j został zaprojektowany tak, aby te instrukcje mogły pozostać w dostarczonym kodzie bez ponoszenia dużych kosztów wydajności.

Jak stworzyć własny poziom rejestrowania w Log4j (Konfiguracja Log4j)

Log4j umożliwia logowanie żądań drukowania do wielu miejsc docelowych. W mowie log4j docelowe miejsce docelowe jest nazywane appender . Różnią się one od konsoli, plików, komponentów GUI, zdalnych serwerów gniazd po JMS.

Plik Jar, którego potrzebujesz.

Oto zależność od Mavena:

Zaktualizuj Log4j do najnowszej wersji

CVE-2021-44228: Apache Log4j2 <=2.14.1 Funkcje JNDI używane w konfiguracji, komunikaty dziennika i parametry nie chronią przed kontrolowanym przez atakującego LDAP i innymi punktami końcowymi związanymi z JNDI.

Od log4j 2.16.0 to zachowanie zostało domyślnie wyłączone.

Musisz umieścić plik log4j.xml w folderze /resources :

plik log4j.xml w folderze zasobów

Oto przykładowy kod Java dla:

  • Log4j Logowanie dla niestandardowych poziomów logów w Javie
  • Tworzenie własnego poziomu logowania w log4j
  • Przykład niestandardowego rejestratora log4j

CrunchifyLog4jLevel.java

Inny musi przeczytać:

  • Jak uruchomić Stop Apache Tomcat Server za pomocą wiersza poleceń? (Konfiguracja jako usługa Windows)
  • Twórz i wdrażaj prostą usługę sieciową i klienta usługi sieciowej w środowisku Eclipse

Oto zawartość pliku log4j.xml

CrunchifyLog4jLevelTest.java

Uruchom program testowy i powinieneś zobaczyć poniżej typ wyniku w Eclipse's Console .

Ważna jest wartość int określona dla poziomu rejestrowania. Tutaj zdefiniowałem poziom dziennika „ CRUNCHIFY ” jako wyższy niż poziom DEBUG , ale niższy niż poziom TRACE dostarczany przez log4j.

Tak więc za każdym razem, gdy ustawisz poziom priorytetu na DEBUG w kategorii (w pliku log4j.xml ), logi poziomu CRUNCHIFY NIE trafią do pliku dziennika.