Poziomy rejestrowania służą do kategoryzowania wpisów w pliku dziennika. Kategoryzują je jednak w bardzo specyficzny sposób, tj. według pilności. Poziom pozwala na wyodrębnienie następujących rodzajów informacji:
- Podczas wyszukiwania możesz filtrować pliki dziennika.
- Możesz zarządzać ilością rejestrowanych informacji.
Ilość i rodzaj informacji podawanych w systemie oraz dziennikach zdarzeń kontrolowane są poprzez ustawienia poziomu log4j w pliku konfiguracyjnym. Każdy komunikat dziennika jest poprzedzony poziomem komunikatu.
Poziomy rejestrowania są przykładem org.apache.log4j.Poziom klasa.
Log4j ma następujące poziomy rejestrowania:
Poziom dziennika | Opis |
---|---|
WSZYSTKO | Poziom ten włącza wszystkie poziomy logowania. Zawiera zdefiniowane przez Ciebie niestandardowe poziomy rejestrowania. Gdy ten zostanie skonfigurowany i poziomy nie zostaną w ogóle uwzględnione, wszystkie programy dołączające zaczną wlewać zdarzenia dziennika do plików dziennika. |
ODPLUSKWIĆ | Debugowanie jest często używane do debugowania aplikacji w czasie jej programowania. Po ustawieniu tego poziomu każdy komunikat dziennika będzie wyświetlany w plikach dziennika. Zasadniczo należy do deweloperów. |
INFORMACJE | Poziom logowania INFO służy do rejestrowania komunikatów dotyczących rutynowego działania aplikacji. W czasie rzeczywistym administratorzy systemu przeglądają dzienniki informacyjne, aby sprawdzić, co dzieje się w systemie w danej chwili i czy występują jakieś problemy w normalnym funkcjonowaniu. |
OSTRZEGAĆ | Poziom dziennika WARN wskazuje, że możesz mieć problem i że wykryłeś nietypową sytuację. Być może żądałeś wywołania usługi, ale kilka razy się to nie udało, zanim nawiązałeś automatyczne ponowne połączenie. Jest to nieoczekiwane i niezwykłe, ale tak naprawdę nie wyrządzono żadnej szkody i nie wiadomo, czy problem będzie się powtarzał, czy powtórzy. Ktoś powinien zbadać ostrzeżenia. |
BŁĄD | Poziom dziennika ERROR oznacza poważny problem, który należy natychmiast zbadać. Nie tak poważny jak FATAL, ale nadal stanowi problem. Oznacza to po prostu, że Twoja aplikacja osiągnęła naprawdę niepożądany stan. Na przykład nieoczekiwane sformatowane dane wejściowe, niedostępność bazy danych. |
FATALNY | Poziom dziennika FATAL, taki jak ERROR, oznacza problem. Ale w przeciwieństwie do ERROR, oznacza bardzo poważne zdarzenie błędu. W normalny dzień nie będziesz zbytnio zwracać uwagi na ich obecność, ale gdy się pojawią, będzie to sygnał bardzo złych wieści, a nawet zastosowania śmierci. |
WYŁĄCZONY | Jest to najwyższa możliwa ranga i ma na celu wyłączenie logowania. |
NAMIERZAĆ | Zostało to niedawno wprowadzone w wersji 1.2 i zawiera więcej informacji na temat dzienników poziomu debugowania. |
Jak ustawić poziomy dziennika?
Ustaw poziom logowania w log4j.properties
log4j.rootLogger=DEBUG, consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n #Log info messages for package 'com.javatpoint.web.controller' log4j.logger.com.javatpoint.web.controller=INFO, consoleAppender
Ustaw poziom dziennika w pliku log4j.xml
Jak działają poziomy dziennika?
Działanie poziomów rejestrowania jest w rzeczywistości bardzo proste. W czasie wykonywania kod aplikacji utworzy żądania rejestrowania, które będą miały poziom. Jednocześnie w strukturze rejestrowania skonfigurowany jest poziom rejestrowania, który pełni rolę progu. Jeśli poziom żądania jest na poziomie skonfigurowanym lub wyższym, zostanie ono zarejestrowane w skonfigurowanym miejscu docelowym. Jeżeli nie, jest to odrzucane. To takie proste.
Rozważmy to jako następującą kolejność rang dla poziomów:
ALL <trace < debug info warn error fatal off pre> <p>So if, for instance, the logging framework level is set to WARN, requests with any of the levels WARN, FATAL, and ERROR will be accepted, while the rest will be denied.</p> <img src="//techcodeview.com/img/log4j-tutorial/51/log4j-logging-levels.webp" alt="Log4J Logging Levels"> <p>In the above diagram, the vertical header displays the Level of the LogEvent, while the horizontal header shows the Level associated with the appropriate logging configuration.</p> <p>For the first column, you will see how the log works in each level. For example, for WARN, (FATAL, ERROR, and WARN) will be visible. For OFF, nothing will be visible.</p> <h3>Log4j Level Example</h3> <p> <strong>Configuration File:</strong> </p> <pre> # Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = WARN, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n </pre> <p> <strong>Java Program:</strong> </p> <pre> import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace('Trace Message!'); log.debug('Debug Message!'); log.info('Info Message!'); log.warn('Warn Message!'); log.error('Error Message!'); log.fatal('Fatal Message!'); } } </pre> <p>Now compile and run the above program and we would get the following output in c:/usr/home/log4j/log.out file:</p> <pre> Warn Message! Error Message! Fatal Message! </pre> <hr></trace>
Program Java:
import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace('Trace Message!'); log.debug('Debug Message!'); log.info('Info Message!'); log.warn('Warn Message!'); log.error('Error Message!'); log.fatal('Fatal Message!'); } }
Teraz skompiluj i uruchom powyższy program, a otrzymamy następujące dane wyjściowe w pliku c:/usr/home/log4j/log.out:
Warn Message! Error Message! Fatal Message!