Konfigurowanie logowania w Spring Boot za pomocą SLF4J i Logback

May 06 2023
Spring Boot wykorzystuje framework Simple Logging Facade for Java (SLF4J) jako interfejs logowania. SLF4J zapewnia ogólny interfejs API rejestrowania, który może być implementowany przez różne platformy rejestrowania, takie jak Logback, Log4j2 i java.

Spring Boot wykorzystuje framework Simple Logging Facade for Java ( SLF4J ) jako interfejs rejestrowania. SLF4J zapewnia ogólny interfejs API rejestrowania, który może być implementowany przez różne platformy rejestrowania, takie jak Logback, Log4j2 i java.util.logging.

Istnieje kilka poziomów rejestrowania , w tym TRACE, DEBUG, INFO, WARN i ERROR, których można użyć do określenia poziomu szczegółowości rejestrowania.

  1. ŚLEDZENIE: Jest to najbardziej szczegółowy poziom rejestrowania, który rejestruje najdrobniejsze szczegóły, takie jak wywołania metod, wartości zmiennych i przebieg wykonywania. Rejestrowanie TRACE powinno być używane do rozwiązywania złożonych problemów.
  2. DEBUG: przechwytuje informacje o zachowaniu aplikacji, które mogą być pomocne w przypadku problemów z debugowaniem. Ten poziom jest odpowiedni dla środowisk programistycznych i testowych, gdzie ważne jest posiadanie szczegółowych informacji o zachowaniu aplikacji.
  3. INFORMACJE: Ten poziom służy do przechwytywania ważnych zdarzeń aplikacji, takich jak komunikaty uruchamiania i zamykania, pomyślne logowanie użytkowników i główne zmiany konfiguracji. Ten poziom powinien być używany w środowiskach produkcyjnych do przechwytywania informacji, które mogą pomóc w zidentyfikowaniu głównej przyczyny problemów.
  4. OSTRZEŻENIE: Ten poziom służy do przechwytywania potencjalnie szkodliwych zdarzeń, takich jak nieudane próby logowania lub nieprawidłowe ustawienia konfiguracji. Ten poziom powinien być używany do rejestrowania zdarzeń, które wymagają uwagi, ale niekoniecznie wskazują na problem krytyczny.
  5. BŁĄD: Ten poziom służy do przechwytywania krytycznych błędów wymagających natychmiastowej uwagi, takich jak awarie aplikacji lub uszkodzenie danych.

Aby włączyć rejestrowanie, zaimportuj oprogramowanie Logger i LoggerFactory z pliku org.slf4j.

Jeśli żadne konfiguracje nie zostaną ustawione w application.properties , domyślnym poziomem rejestrowania będzie INFO.

Wyjście:

Komunikaty DEBUG i TRACE nie zostały wyświetlone, ponieważ poziom rejestrowania aplikacji jest ustawiony na INFO, który ma wyższy poziom priorytetu niż te dwa.

Jeśli poziom rejestrowania został ustawiony na BŁĄD, wyświetlany byłby tylko komunikat o błędzie, ponieważ jest to najwyższy poziom rejestrowania z 5 wbudowanych poziomów.

Możemy dostosować wzorzec logowania za pomocą poniższej konfiguracji w pliku application.properties.

Wyjście:

Niestandardowe rejestrowanie z funkcją Logback

Domyślne rejestrowanie jest wystarczające do rozpoczęcia pracy i celów POC. Ale w rzeczywistych aplikacjach korporacyjnych potrzebujemy dokładniejszej kontroli nad rejestrowaniem z innymi złożonymi wymaganiami. W takim przypadku odpowiednia jest dedykowana konfiguracja rejestrowania.

Spring boot domyślnie korzysta z logback, więc aby dostosować jego zachowanie, musimy dodać plik logback.xml w ścieżce klasy i zdefiniować dostosowanie w pliku.

Poniższy plik konfiguracyjny używa programu dołączającego konsolę i programu dołączającego plik kroczący.

ConsoleAppender rejestruje dane wyjściowe na podstawie wzorca podanego w ConsoleAppender.

W programie RollingFileAppenderutworzy nowy plik do przechowywania pliku dziennika na podstawie polityki kroczącej. W polityce kroczącej określamy wzorzec nazwy pliku, maksymalny rozmiar pliku, całkowity rozmiar wszystkich plików archiwum i dni przechowywania pliku.

Jeśli chcesz nauczyć się uwierzytelniania i autoryzacji Spring Security:

10 najlepszych kursów do nauki Spring Security i OAuth2 z Spring Boot dla programistów Java w 2023 roku

Skorzystaj z tych linków: Dostęp oparty na rolach Spring Security z Spring Boot && Spring Security Uwierzytelnianie i autoryzacja za pomocą JWT

Domenico Nicoli Java Techie Trey Huffine Arslan Ahmad