Úrovne protokolovania sa používajú na kategorizáciu záznamov v súbore denníka. Ale kategorizujú veľmi špecifickým spôsobom, t. j. podľa naliehavosti. Úroveň vám umožňuje oddeliť nasledujúce druhy informácií:
- Počas vyhľadávania môžete svoje protokolové súbory filtrovať.
- Môžete spravovať množstvo informácií, ktoré zaznamenávate.
Množstvo a typ informácií uvedených v systéme a protokoly udalostí sa riadia nastaveniami úrovne log4j v konfiguračnom súbore. Každá správa denníka má predponu úroveň správy.
Úrovne protokolovania sú príkladom org.apache.log4j.Level trieda.
Log4j má nasledujúce úrovne protokolovania:
Úroveň denníka | Popis |
---|---|
VŠETKY | Táto úroveň zapína všetky úrovne protokolovania. Zahŕňa vlastné úrovne protokolovania, ktoré ste definovali. Akonáhle je tento nakonfigurovaný a úrovne sa vôbec neberú do úvahy, potom všetky appendery začnú nalievať protokolové udalosti do protokolových súborov. |
DEBUG | Debug sa často používa na ladenie aplikácie v čase vývoja. Po nastavení tejto úrovne sa v protokolových súboroch objaví každá správa protokolu. V podstate patrí vývojárom. |
INFO | Úroveň logovania INFO sa používa na zaznamenávanie správ o rutinnej prevádzke aplikácie. Správcovia systému v reálnom čase sledujú informačné protokoly, aby sa uistili, čo sa práve deje v systéme a či nie je nejaký problém v normálnom toku. |
UPOZORNENIE | Úroveň protokolu WARN sa používa na označenie toho, že môžete mať problém a že ste zistili nezvyčajnú situáciu. Možno ste požadovali vyvolanie služby a tá niekoľkokrát zlyhala, kým sa pripojila pri automatickom opakovaní. Je to neočakávané a nezvyčajné, ale nedošlo k žiadnej skutočnej škode a nie je známe, či problém bude pretrvávať alebo sa bude opakovať. Niekto by mal varovania preskúmať. |
CHYBA | Úroveň protokolu ERROR sa používa na označenie vážneho problému, ktorý musíte okamžite preskúmať. Nie také vážne ako FATAL, ale stále problém. Znamená to jednoducho, že vaša aplikácia sa dostala do skutočne nežiaduceho stavu. Napríklad neočakávaný formátovaný vstup, nedostupnosť databázy. |
FATAL | Úroveň denníka FATAL, podobne ako ERROR, označuje problém. Ale na rozdiel od ERROR označuje veľmi závažnú chybovú udalosť. Ich prítomnosť v bežný deň nebudete veľmi zvažovať, no akonáhle sa objavia, signalizuje to veľmi zlé správy, dokonca aj aplikáciu smrti. |
VYPNUTÉ | Toto je najvyššie možné hodnotenie a je určené na vypnutie zapisovania do denníka. |
TRACE | Toto bolo nedávno zavedené vo verzii 1.2 a obsahuje viac informácií na ladenie protokolov úrovní. |
Ako nastaviť úrovne denníka?
Nastavte úroveň denníka v 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
Nastavte úroveň denníka v log4j.xml
Ako fungujú úrovne denníka?
Práca s úrovňami protokolovania je v skutočnosti veľmi jednoduchá. Počas behu bude kód aplikácie vytvárať požiadavky na protokolovanie, ktoré budú mať úroveň. Zároveň má protokolovací rámec nakonfigurovanú úroveň protokolu, ktorá funguje ako prahová hodnota. Ak je úroveň požiadavky na nakonfigurovanej úrovni alebo vyššej, prihlási sa do nakonfigurovaného cieľa. Ak nie, je to zamietnuté. Je to jednoduché.
Uvažujme to ako nasledujúce poradie úrovní:
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>
Java program:
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 skompilujte a spustite vyššie uvedený program a v súbore c:/usr/home/log4j/log.out by sme dostali nasledujúci výstup:
Warn Message! Error Message! Fatal Message!