Czy nadal warto dodać bibliotekę log4j do projektu Java 5 tylko po to, aby zalogować, powiedzmy, kilka wyjątków do pliku z ładnymi ustawieniami najazdu. A może standardowe narzędzie util.logging również spełni swoje zadanie?
Co myślisz?
Czy nadal warto dodać bibliotekę log4j do projektu Java 5 tylko po to, aby zalogować, powiedzmy, kilka wyjątków do pliku z ładnymi ustawieniami najazdu. A może standardowe narzędzie util.logging również spełni swoje zadanie?
Co myślisz?
Odpowiedzi:
Powiedziałbym, że prawdopodobnie nie przeszkadza ci korzystanie z util.logging dla potrzeb, które opisujesz.
Aby uzyskać dobre drzewo decyzyjne, spójrz na Log4j vs java.util.logging
Pytanie pierwsze: Czy przewidujesz zapotrzebowanie na którykolwiek z inteligentnych programów obsługi, których Log4j nie ma, a których JUL nie ma, takich jak SMTPHandler, NTEventLogHandler lub którykolwiek z bardzo wygodnych FileHandlerów?
Pytanie drugie: Czy widzisz, że chcesz często zmieniać format danych wyjściowych logowania? Czy potrzebujesz łatwego, elastycznego sposobu, aby to zrobić? Innymi słowy, czy potrzebujesz PatternLayout Log4j?
Pytanie trzecie: Czy spodziewasz się wyraźnej potrzeby zmiany złożonych konfiguracji rejestrowania w aplikacjach po ich skompilowaniu i wdrożeniu w środowisku produkcyjnym? Czy twoja konfiguracja brzmi mniej więcej tak: „Poważne wiadomości z tej klasy są wysyłane pocztą e-mail do osoby zajmującej się pomocą techniczną; poważne wiadomości z podzbioru klas są rejestrowane do demona syslog na naszym serwerze; ostrzeżenia z innego podzbioru klas są rejestrowane do pliku na dysku sieciowym A, a następnie wszystkie wiadomości z każdego miejsca są rejestrowane w pliku na dysku sieciowym B "? I czy widzisz siebie poprawiającego to co kilka dni?
Jeśli możesz odpowiedzieć twierdząco na którekolwiek z powyższych pytań, przejdź do Log4j. Jeśli odpowiesz zdecydowanie nie na wszystkie z nich, JUL będzie więcej niż wystarczający i dogodnie jest już zawarty w SDK.
To powiedziawszy, prawie każdy projekt w dzisiejszych czasach wydaje się kończyć łącznie z log4j, choćby dlatego, że używa go inna biblioteka.
Polecam korzystanie z Simple Logging Facade for Java (SLF4J). Obsługuje różnych dostawców, w tym Log4J, i może być używany jako zamiennik dla Apache Commons Logging.
Log4j istnieje od dawna i działa bardzo dobrze. Nie mam żadnych badań naukowych, które by to potwierdziły, ale opierając się na tym, co widziałem u dużej liczby klientów, z łatwością jest to struktura rejestrowania, która jest używana częściej niż jakakolwiek inna. Istnieje od dawna i nie został zastąpiony przez Next Big Logging Framework, który coś mówi.
Jest bardzo prosty w konfiguracji i łatwy do nauczenia się podstawowych aplikacji (wyników). Dostępnych jest cała lista aplikacji hostujących, w tym:
Plus inne. Nie jest też trudno napisać własnego appendera. Dodatkowo każdy z programów dołączających jest bardzo elastyczny, co pozwala dokładnie kontrolować, co jest wyświetlane w dzienniku.
Jedna uwaga, miałem serię problemów z programem ładującym klasy, gdy oprócz log4j korzystałem z logowania apache commons. To było tylko dla jednej konkretnej aplikacji, ale okazało się, że łatwiej jest używać samego log4j, niż mieć elastyczność oferowaną podczas korzystania z warstwy abstrakcji, takiej jak wspólne logowanie.
Więcej informacji znajdziesz w tym artykule :
Powodzenia!
java.util.logging oferuje kompleksowy pakiet rejestrowania bez nadbagażu, który zapewniają niektóre inne.
log4j jest ogólnie znacznie ładniejszym pakietem i nie ma niektórych problemów, które zawiera java.util.logging. Po drugie, bezpośrednie używanie log4j jest łatwiejsze niż używanie zwykłego logowania.
Zalecam używanie Apache Commmons Logging jako interfejsu logowania. W ten sposób możesz przełączać implementacje rejestrowania w dowolnym momencie, bez konieczności wprowadzania jakichkolwiek zmian w kodzie.