Kirjaustasoja käytetään lokitiedostosi merkintöjen luokitteluun. Mutta ne luokitellaan hyvin erityisellä tavalla, eli kiireellisyyden mukaan. Tason avulla voit erottaa seuraavan tyyppiset tiedot:
- Voit suodattaa lokitiedostojasi haun aikana.
- Voit hallita kirjaamasi tiedon määrää.
Järjestelmässä ja tapahtumalokeissa annettavien tietojen määrää ja tyyppiä ohjaavat konfiguraatiotiedoston log4j-tason asetukset. Jokaisen lokiviestin etuliitteenä on viestin taso.
Kirjaustasot ovat esimerkki org.apache.log4j.Level luokkaa.
Log4j:ssä on seuraavat kirjaustasot:
Lokin taso | Kuvaus |
---|---|
KAIKKI | Tämä taso ottaa käyttöön kaikki kirjauksen tasot. Se sisältää määrittämäsi mukautetut kirjaustasot. Kun tämä on määritetty ja tasoja ei huomioida ollenkaan, kaikki liittimet alkavat kaata lokitapahtumia lokitiedostoihin. |
DEBUG | Debugia käytetään paljon sovelluksen virheenkorjaukseen kehitysvaiheessa. Jokainen lokiviesti näkyy lokitiedostoina, kun tämä taso on asetettu. Se kuuluu periaatteessa kehittäjille. |
TIEDOT | INFO-lokitasoa käytetään sovelluksen rutiininomaista toimintaa koskevien viestien tallentamiseen. Reaaliajassa järjestelmänvalvojat tarkkailevat tietolokeja varmistaakseen, mitä järjestelmässä tapahtuu juuri nyt ja onko normaalissa kulkussa ongelmia. |
VAROITTAA | WARN-lokin tasoa käytetään osoittamaan, että sinulla saattaa olla ongelma ja että olet havainnut epätavallisen tilanteen. Ehkä vaadit palvelun käynnistämistä, ja se epäonnistui muutaman kerran ennen yhteyden muodostamista automaattisella uudelleenyrityksellä. Se on odottamaton ja epätavallinen, mutta todellista vahinkoa ei tapahtunut, eikä tiedetä, jatkuuko ongelma vai toistuuko se. Jonkun pitäisi tutkia varoitukset. |
VIRHE | ERROR-lokitasoa käytetään ilmaisemaan vakavaa ongelmaa, joka on tutkittava välittömästi. Ei niin vakava kuin FATAL, mutta silti ongelma. Se tarkoittaa yksinkertaisesti, että hakemuksesi on saavuttanut todella ei-toivotun tilan. Esimerkiksi odottamaton muotoiltu syöttö, tietokannan poissaolo. |
KAPPALEEN | FATAL lokitaso, kuten ERROR, osoittaa ongelman. Mutta toisin kuin ERROR, se osoittaa erittäin vakavan virhetapahtuman. Et ajattele heidän läsnäoloaan kovinkaan paljon tavallisena päivänä, mutta kun ne ilmestyvät, se merkitsee erittäin huonoja uutisia, jopa kuoleman soveltamista. |
VINOSSA | Tämä on korkein mahdollinen arvo, ja sen tarkoituksena on sammuttaa kirjaaminen. |
JÄLJITTÄÄ | Tämä on äskettäin otettu käyttöön versiossa 1.2, ja se sisältää lisätietoja virheenkorjaustason lokeista. |
Kuinka asettaa lokitasot?
Aseta lokitaso kohteessa 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
Aseta lokitaso tiedostossa log4j.xml
Kuinka lokitasot toimivat?
Kirjaustasojen käyttö on itse asiassa hyvin yksinkertaista. Ajon aikana sovelluskoodi luo lokipyyntöjä, joilla on taso. Samanaikaisesti lokikehyksessä on määritetty lokitaso, joka toimii kynnysarvona. Jos pyyntötaso on määritetyllä tai korkeammalla tasolla, se kirjataan lokiin määritettyyn kohteeseen. Jos ei, se on kielletty. Se on niin yksinkertaista.
Ajatellaanpa sitä seuraavana tasojen järjestyksenä:
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-ohjelma:
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!'); } }
Nyt käännä ja suorita yllä oleva ohjelma ja saamme seuraavan tulosteen c:/usr/home/log4j/log.out-tiedostossa:
Warn Message! Error Message! Fatal Message!