SLF4J

Prosta fasada rejestrowania dla języka Java
Deweloperzy Ceki Gülcu
Wersja stabilna
2.0.3 / 28 września 2022 r . ; 5 miesięcy temu ( 2022-09-28 )
Magazyn
Napisane w Jawa
System operacyjny Międzyplatformowe
Typ Narzędzie do logowania
Licencja Licencja MIT
Strona internetowa www.slf4j.org _ _

Simple Logging Facade for Java ( SLF4J ) udostępnia interfejs API logowania Java za pomocą prostego wzorca fasady . Podstawowe zaplecze rejestrowania jest określane w czasie wykonywania przez dodanie żądanego powiązania do ścieżki klasy i może to być standardowy pakiet rejestrowania Sun Java java.util.logging, Log4j , Reload4j, Logback lub tinylog.

Oddzielenie interfejsu API klienta od zaplecza rejestrowania zmniejsza sprzężenie między aplikacją a określoną strukturą rejestrowania. Może to ułatwić integrację z istniejącym kodem lub kodem innej firmy lub dostarczanie kodu do innych projektów, które już dokonały wyboru zaplecza rejestrowania.

SLF4J został stworzony przez Ceki Gülcü jako bardziej niezawodna alternatywa dla frameworka Jakarta Commons Logging. Badania przeprowadzone w 2013 roku na 10 000 projektów GitHub wykazały, że najpopularniejszą biblioteką Java jest SLF4J wraz z JUnit , z której korzysta 30,7% projektów. W styczniu 2021 roku zajął drugie miejsce na liście najpopularniejszych projektów według mvnrepository.

Podobieństwa i różnice z log4j 1.x

  • Używanych jest pięć z sześciu poziomów rejestrowania log4j (BŁĄD, OSTRZEŻENIE, INFORMACJE, DEBUGOWANIE, ŚLEDZENIE). FATAL został usunięty na tej podstawie, że w ramach rejestrowania nie ma miejsca na decydowanie, kiedy aplikacja powinna się zakończyć, a zatem nie ma różnicy między ERROR a FATAL z punktu widzenia rejestratora. Ponadto znaczniki SLF4J oferują bardziej ogólną metodę znakowania instrukcji dziennika. Na przykład dowolne oświadczenie dziennika poziomu BŁĄD można oznaczyć znacznikiem „FATAL”.
  • Instancje Loggera są tworzone przez LoggerFactory , co jest bardzo podobne w log4j. Na przykład,
            prywatny  statyczny  końcowy  Logger  LOG  =  LoggerFactory  .  getLogger  (  Wombat  .  klasa  ); 
    
  • W programie Logger metody rejestrowania są przeładowane formularzami akceptującymi jedną, dwie lub więcej wartości. Wystąpienia prostego wzorca {} w komunikacie dziennika są kolejno zastępowane wartościami. Jest to proste w użyciu, ale zapewnia korzyści w zakresie wydajności, gdy wartości mają drogie toString() . Gdy rejestrowanie jest wyłączone na danym poziomie, struktura rejestrowania nie musi oceniać reprezentacji łańcuchowej wartości ani konstruować ciągu komunikatów dziennika, który nigdy nie jest rejestrowany. W poniższym przykładzie konkatenacja łańcuchów i metoda toString() metody dla wartości count lub userAccountList są wykonywane tylko wtedy, gdy włączone jest DEBUG.
        
        LOG  .  debug  (  "Istnieje teraz "  +  liczba  +  " kont użytkowników: "  +  userAccountList  );  // wolniej  LOG  .  debug  (  "Istnieje teraz {} kont użytkowników: {}"  ,  count  ,  userAccountList  );  // szybciej 
  • Podobne metody istnieją w programie Logger dla isDebugEnabled() itp., aby umożliwić zawijanie bardziej złożonych wywołań rejestrowania, tak aby były one wyłączane, gdy odpowiedni poziom jest wyłączony, unikając niepotrzebnego przetwarzania.
  • W przeciwieństwie do log4j , SLF4J oferuje metody rejestrowania, które akceptują znaczniki. Są to specjalne obiekty, które wzbogacają komunikaty dziennika. Obecnie logback jest jedynym frameworkiem, który wykorzystuje znaczniki.

Podobieństwa i różnice z log4j 2.x

Apache log4j 2.x obsługuje wszystkie funkcje slf4j.

Historia wersji

Wersja 2

Wersja 2 została wydana 20.08.2022, dla której dostępna jest wersja 2.0.3 . Wymaga Javy 8 lub nowszej.

Znaczące dodatki do funkcji:

  • Wersja 2.0.0 dodaje obsługę składni lambda i używa Fluent API.
  • Obsługa składni lambda w przekazywaniu komunikatów do logowania.
  • Płynne API.

Wersja 1

Szczegóły wersji można znaleźć w instrukcji .

Znaczące wersje obejmują:

  • Wersje wersji 1.7.36 są odtwarzalne.
  • Moduł slf4j-log4j12 w wersji 1.7.35 został zastąpiony modułem slf4j-reload4j.
  • Wersja 1.7.33 dodaje obsługę reload4j poprzez moduł slf4j-reload4j. Jest to najnowsza stabilna wersja. Zobacz Pobierz stronę produktu.
  • Wersja 1.7.5 przyniosła znaczną poprawę czasów odzyskiwania rejestratora.
  • Wersja 1.7.0 dodała obsługę varargs , wymagając obsługi języka Java 5 lub nowszego.
  • Wersja 1.6 przyniosła implementację bez operacji używaną domyślnie, jeśli nie znaleziono powiązania.
  • Wydania wersji 1.1 w repozytoriach Maven rozpoczęły się w latach 2006-09 .

Zobacz też

Linki zewnętrzne