Rejestrowanie jest ważną funkcją, którą programiści muszą wziąć pod uwagę, aby prześledzić błędy. , będąc jednym z najpopularniejszych języków programowania, oferuje konfigurowalne podejście do rejestrowania, zapewniając podstawowe API logowania. Dlatego w tym artykule na temat Loggera w Javie omówię, jak to zrobić może użyć tej funkcji, aby włączyć rozszerzalne rejestrowanie w Javie.
W tym artykule zostaną omówione następujące tematy:
Wcześniej zagłębiliśmy się w logowanie w Javie, zrozumiemy potrzebę logowania.
Konieczność logowania
Podczas budowania aplikacji często napotykamy błędy, które wymagają debugowania. Czyli za pomocą logów w łatwy sposób możemy uzyskać informacje o tym, co dzieje się w aplikacji z zapisem błędów i nietypowych okoliczności. Teraz może ci przyjść do głowy, że dlaczego nie użyć instrukcji System.out.print () w . Cóż, problem z tymi instrukcjami polega na tym, że komunikaty dziennika będą drukowane tylko na konsoli. Tak więc po zamknięciu konsoli automatycznie wszystkie dzienniki zostaną utracone. Dlatego dzienniki nie będą przechowywane na stałe i są wyświetlane jeden po drugim, ponieważ jest to środowisko jednowątkowe.
Aby uniknąć takich problemów, logowanie w Javie jest uproszczone za pomocąAPI dostarczane za pośrednictwemjava.util.logging
pakiet iorg.apache.log4j. *
pakiet.
Składniki rejestrowania
Komponenty rejestrowania Java pomagają programistom tworzyć dzienniki, przekazywać je do odpowiednich miejsc docelowych i utrzymywać odpowiedni format. Oto trzy składniki:
- Rejestratory - Odpowiada za przechwytywanie zapisów dziennika i przekazywanie ich do odpowiedniego Appendera.
- Programy dołączające lub programy obsługi - Są odpowiedzialne za zapisywanie zdarzeń z dziennika do miejsca docelowego. Appendery formatują zdarzenia za pomocą układów przed wysłaniem wyników.
- Układy lub elementy formatujące - Odpowiedzialny za określenie wyglądu danych, gdy pojawiają się one we wpisie dziennika.
Możesz zapoznać się z poniższym obrazem, aby zapoznać się z działaniem wszystkich trzech komponentów:
Gdy aplikacja wykonuje wywołanie rejestrowania, składnik Logger rejestruje zdarzenie w LogRecord i przekazuje je do odpowiedniego Appendera. Następnie sformatował rekord przy użyciu układu zgodnie z wymaganym formatem. Oprócz tego możesz również użyć więcej niż jednego filtra, aby określić, które elementy dołączające mają być używane dla wydarzeń.
Teraz przyjrzyjmy się dokładniej, czym jest program rejestrujący w Javie.
Co to jest Logger w Javie?
Loggery w Javie to obiekty, które wyzwalają zdarzenia dziennika, są tworzone i wywoływane w kodzie aplikacji, gdzie generują zdarzenia dziennika przed przekazaniem ich do kolejnego komponentu, jakim jest Appender. Możesz używać wielu rejestratorów w jednej klasie, aby odpowiadać na różne zdarzenia lub używać rejestratorów w hierarchii. Zwykle są nazywane przy użyciu hierarchicznej przestrzeni nazw oddzielonej kropkami. Ponadto wszystkie nazwy programu Logger muszą być oparte na klasie lub nazwie pakietu zarejestrowanego składnika.
Poza tym każdy Logger śledzi najbliższego istniejącego przodka w Dzienniki przestrzeń nazw, a także jest z nią powiązany „Poziom”. Cóż, omówię rejestratory w dalszej części tego artykułu, ale wcześniej pokażę, jak utworzyć rejestrator w Javie.
jest hadoop łatwy do nauczenia
Utwórz nowy rejestrator
Proces tworzenia nowego Loggera w Javie jest dość prosty. Musisz użyćLogger.getLogger ()
metoda. PlikgetLogger ()
identyfikuje nazwę Loggera i przyjmuje ciąg jako parametr. Tak więc, jeśli rejestrator istnieje już wcześniej, ten rejestrator jest zwracany, w przeciwnym razie tworzony jest nowy rejestrator.
Składnia:
static Logger logger = Logger.getLogger (SampleClass.class.getName ())
Tutaj SampleClass jest nazwą klasy, dla której pobieramy obiekt Logger.
Przykład:
public class Customer {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}
Teraz, gdy już powiedziałem ci, jak utworzyć Logger w Javie, zobaczmy różne poziomy dostępne w logowaniu.
Log Levels
Poziomy dzienników służą do kategoryzowania dzienników według ich wagi lub wpływu na stabilność aplikacji. Plikorg.apache.log4j. *
pakiet ijava.util.logging
oba zapewniają różne poziomy logowania. Przyjrzyjmy się każdemu z nich po kolei.
org.apache.log4j. *
pakiet zawiera następujące poziomy w kolejności malejącej:
- FATALNY
- BŁĄD
- OSTRZEC
- INFO
- ODPLUSKWIĆ
java.util.logging
pakiet zawiera następujące poziomy w kolejności malejącej:
- POWAŻNY (NAJWYŻSZY POZIOM)
- OSTRZEŻENIE
- INFO
- KONFIG
- W PORZĄDKU
- FINERY
- NAJLEPSZY (NAJNIŻSZY POZIOM)
Oprócz tego powyższy pakiet zapewnia również dwa dodatkowe poziomyWSZYSTKO
iPOZA
służy do rejestrowania wszystkich wiadomości i odpowiednio wyłączania logowania.
Przykład logowania w Javie przy użyciuorg.apache.log4j. *
pakiet:
import org.apache.log4j.Logger public class Customer {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Końcowe wyjście')}}
Więc jeśli twój wynik toroot logger jako poziom WARN w naszym log4j.properties plik, wszystkie komunikaty o błędach z wyższym priorytetem niż OSTRZEŻENIE zostaną wydrukowane jak poniżej:
algorytmy uczenia maszynowego w r
Poziom można również ustawić za pomocą metody setLevel () z plikujava.util.logging
pakiet jak poniżej:
logger.setLevel (Level.WARNING)
Przykład logowania w Javie przy użyciujava.util.logging
pakiet:
pakiet edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * class EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) public void sampleLog () {LOGGER.log (Level.WARNING, 'Witamy w Edureka!')}} public class Customer {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'Cześć! Witaj z Edureka')}}
Aby umożliwić logowanie się do aplikacji przy użyciuorg.apache.log4j. *
pakiet lubjava.util.logging
pakiet, musisz skonfigurować plik właściwości. Następnie w tym artykule na temat programu Logger in Java omówimy plik właściwości obu z nich.
Plik właściwości Log4j i pakietu Java Util
Przykładowy plik właściwości Log4j:
# Włącz opcję głównego rejestratora log4j.rootLogger = INFO, plik, stdout # Dołącz programy dołączające, aby wydrukować plik log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10 MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {rrrr-MM-dd GG: mm : ss}% -5p% c {1}:% L -% m% n # Dołącz dopełniacze do drukowania na konsoli log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {rrrr-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
- Plik właściwości Log4j jest tworzony w folderze src projektu.
- log4j.appender.file = org.apache.log4j.RollingFileAppender -> Drukuje wszystkie dzienniki w pliku
- log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Wyświetla wszystkie dzienniki w konsoli
- log4j.appender.file.File = D: loglogging.log -> Określa lokalizację pliku dziennika
- log4j.appender.file.MaxFileSize = 10 MB -> Maksymalny rozmiar pliku dziennika do 10 MB
- log4j.appender.file.MaxBackupIndex = 5 -> Ogranicza liczbę plików kopii zapasowych do 5
- log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Określa wzorzec, w którym dzienniki będą drukowane do pliku dziennika.
- log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Ustawia domyślny wzorzec konwersji.
Próba Plik właściwości pakietu Java Util
handlers = java.util.logging.ConsoleHandler .level = OSTRZEŻENIE # Dane wyjściowe zostaną zapisane w domyślnym katalogu java.util.logging.FileHandler.pattern =% h / java% u.log java.util.logging.FileHandler.limit = 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # Poziom logów będzie ograniczony do WARNING i wyższych. java.util.logging.ConsoleHandler.level = OSTRZEŻENIE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Tutaj,
- java.util.logging.FileHandler.pattern =% h / java% u.log -> Pliki dziennika byłyby zapisywane wC: TEMPjava1.log
- java.util.logging.FileHandler.limit = 50000 ->Maksymalna ilość zapisywana przez program rejestrujący w dowolnym pliku w bajtach.
- java.util.logging.FileHandler.count = 1 -> Określa liczbę plików wyjściowych
- java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Wspomina o programie formatującym używanym do formatowania. Tutaj używany jest XML Formatter.
- java.util.logging.ConsoleHandler.level = OSTRZEŻENIE -> Ustawia domyślny poziom logowania na OSTRZEŻENIE
- java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->OkreślaFormatterdo użytku przez wszystkichConsoleHandlerS. Tutaj używany jest SimpleFormatter.
Rejestrowanie zdarzeń
Aby zalogować zdarzenia , musisz upewnić się, że przypisałeś poziom, aby łatwo odfiltrować zdarzenia. Aby przypisać poziom i wspomnieć o wiadomości, możesz skorzystać z poniższych metod:
Metoda 1:
logger.log (Level.INFO, „Wyświetl komunikat”)
Tutaj poziom to INFO, a komunikat do wydrukowania to „Display Message”.
Metoda 2:
logger.info („Wyświetl komunikat”)
Aby upewnić się, że Logger w Javie rejestruje tylko zdarzenia, które są na lub powyżej poziomu INFO, możesz użyć setLevel () metoda omówiona powyżej.
Skoro już omówiłem, jak używać Loggera w Javie, omówmy następny komponent architektury Log4j, czyli Appendery.
Appender lub Handlers
Program dołączający lub programy obsługi są odpowiedzialne za rejestrowanie zdarzeń dziennika w miejscu docelowym. Każdy program rejestrujący ma dostęp do wielu programów obsługi i otrzymuje komunikat dziennika od rejestratora. Następnie programy dopisujące używają elementów formatujących lub układów do formatowania zdarzeń i wysyłania ich do odpowiedniego miejsca docelowego.
Appender można wyłączyć za pomocą metody setLevel (Level.OFF). Dwa najbardziej standardowe programy obsługi wjava.util.logging
pakiet jest następujący:
- FileHandler: Zapisz komunikat dziennika do pliku
- ConsoleHandler: Zapisuje komunikat dziennika w konsoli
Dla lepszego zrozumienia wyjaśniłem kilka Appenderów w sekcji właściwości.
Układ lub elementy formatujące
Układ elementów formatujących służy do formatowania i konwertowania danych w zdarzeniu dziennika.Struktury rejestrowania zapewniają układy dla HTML, XML, Syslog, JSON, zwykłego tekstu i innych dzienników.
- SimpleFormatter : Generuje wiadomości tekstowe z podstawowymi informacjami.
- XMLFormatter : Generuje komunikat XML dla dziennika
Dla lepszego zrozumienia wyjaśniłem kilka układów w sekcji właściwości.Tym samym dochodzimy do końca tego bloga o „Logger in Java”. Mam nadzieję, że wiecie, czego nauczyliście się w tym artykule.
Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego bloga „Logger in Java”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.