Czy muszę zaktualizować log4j do slf4j [zamknięte]

10

Sprawdzamy naszą aplikację internetową JEE pod kątem planowanego refaktoryzacji i jedną z sugestii jest zastąpienie jej log4jprzez logbacklubslf4j

Zespół nie ma jasności co do tego, czy powinniśmy to zrobić - ponieważ obecnie chcemy podążać, jeśli nie jest zepsute, nie naprawiaj tego w tym obszarze.

Edycja: Nie pytam o porównanie ram rejestrowania, ale czy zmiana wartości frameworku jest cennym elementem refaktoryzującym, gdy jesteśmy całkiem zadowoleni z log4j

JoseK
źródło

Odpowiedzi:

18

Jedno ważne pytanie, które należy wziąć pod uwagę: Czy budujesz bibliotekę, z której korzysta ktoś inny, czy też tworzysz produkt końcowy?

W pierwszym przypadku SLF4j jest bardzo ważny, ponieważ ktoś zintegruje twoją bibliotekę z jego oprogramowaniem, które już się zalogowało i byłoby miło, gdyby twoje klasy tylko tego używały.

W drugim przypadku powiedziałbym, że możesz tak po prostu zostawić. Może pomyśl o użyciu slf4j w następnym projekcie.

Tim Büthe
źródło
7

Nie rób Lepiej spędzaj czas, wdrażając przydatne, cenne funkcje.

Martin Wickman
źródło
6
-1: rejestrowanie musi być tak dobre, jak to możliwe!
7
Więc log4j, którego używają, nie jest wystarczająco użyteczny? Wymiana szkieletów tylko dlatego, że jest to możliwe, to strata czasu. OP stwierdził nawet, że rejestrowanie nie zostało zerwane.
Martin Wickman,
1
Nie głosowałbym za tym. Martin może mieć rację. Jeśli Jose ma pewną gotowego produktu (nie biblioteka, zobacz moją odpowiedź) powinien on po prostu zostawić je tak jest i spędzać czas gdzieś indziej ...
Tim Buthe
2
@ Thorbjørn, nie, logowanie (jako funkcje ogólnie) musi być tak dobre, jak to konieczne . Jeśli nie mają problemów z Log4J (przy okazji nie przytoczyłeś żadnego z nich, co spowodowałoby konieczność jego wymiany), najprawdopodobniej są lepsze wykorzystanie ich czasu.
Péter Török
1
-1: Bezwarunkowe preferencje jednego nad drugim są błędne IMHO. Spróbuj po prostu porównać tę odpowiedź z warunkowością odpowiedzi Tima Buetha.
Ajeet Ganga
1

Jeśli Log4J działa dla Ciebie, nie ma powodu, aby to zmieniać. Jeśli nie, poszukaj alternatywy, która robi to, czego potrzebujesz, która może, ale nie musi być slf4j.

To, że ktoś mówi, że coś jest ładniejszego niż coś innego, nigdy nie powinno być powodem do zmiany całej aplikacji (lub w ogóle przyjęcia tego czegoś nowego).

jwenting
źródło
0

Slf4j to interfejs API, który pozwala wybrać, czy podczas logowania należy używać log4j, logback lub domyślnego rejestrowania jdk zamiast decydować w czasie kompilacji (co dzieje się, gdy kodujesz bezpośrednio do log4j)

Slf4j dostarcza również {} -konstrukt, który może opóźniać kosztowne wywołania funkcji toString (), unikając ich całkowicie, jeśli instrukcja dziennika nie jest włączona.

Następnie możesz wybrać silnik później.

Newtopian
źródło