Java logimine

Selles õpetuses õpime näidete abil Java Logimise ja selle erinevate komponentide kohta.

Java võimaldab meil logimisprotsessi kaudu logisõnumeid ja faile luua ja hõivata.

Javas nõuab logimine raamistikke ja API-sid. Java java.util.loggingpakendis on sisseehitatud logimisraamistik .

Logimise eesmärgil saame kasutada ka kolmandate osapoolte raamistikke, nagu Log4j, Logback ja palju muud.

Java logimise komponendid

Alloleval joonisel on kujutatud Java logimise API ( java.util.logging) põhikomponendid ja juhtimisvoog .

Java logimine

1. logija

LoggerKlassi meetodeid raie. Saame Loggerklassi objektid kiireks muuta ja logimise eesmärgil selle meetodeid kutsuda.

Võtame näite.

 Logger logger = Logger.getLogger("newLoggerName"); 

Uue leidmiseks või loomiseks kasutatakse klassi getLogger()meetodit . Stringi argument määrab logija nime.LoggerLogger

Siin luuakse see uus Loggerobjekt või tagastatakse Loggersama nimega olemasolev .

A- Loggerklassi määratlemine praeguse klassi järgi on tavapärane class.getName().

 Logger logger = Logger.getLogger(MyClass.class.getName()); 

Märkus. See meetod viskab, NullPointerExceptionkui edastatud nimi on null.

Igal neist Loggeron tase, mis määrab logisõnumi olulisuse. Logil on 7 põhitaset:

Logi tase (kahanevas järjekorras) Kasutage
RASKED tõsine läbikukkumine
HOIATUS hoiatusteade, potentsiaalne probleem
INFO üldine käitusaegne teave
KONFIGEERI konfiguratsiooniteave
Peen arendaja üldteave (sõnumite jälgimine)
Peenem arendaja üksikasjalik teave (sõnumite jälgimine)
PARIM arendaja väga üksikasjalik teave (sõnumite jälgimine)
VÄLJAS lülita kõigi tasemete logimine välja (midagi ei jäädvustata)
KÕIK lülitage sisse logimine kõigil tasanditel (jäädvustage kõik)

Igal logitasemel on täisarv, mis määrab nende tõsiduse, välja arvatud kaks spetsiaalset logitaset OFFja ALL.

Sõnumi logimine

Vaikimisi logitakse alati kolm esimest logitaset. Erineva taseme määramiseks saame kasutada järgmist koodi:

 logger.setLevel(Level.LogLevel); // example logger.setLevel(Level.FINE); 

Selles näites FINEon logimiseks seatud ainult tase ja sellest kõrgemad tasemed. Kõik muud logisõnumid loobutakse.

Nüüd sõnumi logimiseks kasutame log()meetodit.

 logger.log(Level.LogLevel, "log message"); // example logger.log(Level.INFO, "This is INFO log level message"); 

Soovitud tasemel logimiseks on olemas lühike meetodid.

 logger.info( "This is INFO log level message"); logger.warning( "This is WARNING log level message"); 

Kõik määratud logitaseme ületanud logitaotlused edastatakse seejärel LogRecordi .

Märkus. Kui logija tase on seatud väärtusele null, siis päritakse selle tase vanemalt ja nii edasi puu kohal.

2. Filtrid

Filter (kui see on olemas) määrab, kas LogRecord tuleks edastada või mitte. Nagu nimigi ütleb, filtreerib see logisõnumid vastavalt konkreetsetele kriteeriumidele.

LogRecord ainult möödunud puuraidur logi käitleja ja palgist käitleja väliste süsteemidega, kui see läbib kindlaksmääratud kriteeriumidele.

 // set a filter logger.setFilter(filter); // get a filter Filter filter = logger.getFilter(); 

3. Töötlejad (lisandid)

Logikäitleja või lisajad saavad LogRecordi ja ekspordivad selle erinevatesse sihtmärkidesse.

Java SE pakub 5 sisseehitatud käitlejat:

Töötlejad Kasutage
StreamHandler kirjutab an OutputStream
ConsoleHandler kirjutab konsooli
FileHandler kirjutab faili
SocketHandler kirjutab TCP kaugporti
MemoryHandler kirjutab mällu

Töötleja võib edastada LogRecordi filtrile, et uuesti otsustada, kas seda saab välistele süsteemidele edastada või mitte.

Uue käitleja lisamiseks kasutame järgmist koodi:

 logger.addHandler(handler); // example Handler handler = new ConsoleHandler(); logger.addHandler(handler); 

Käitleja eemaldamiseks kasutame järgmist koodi:

 logger.removeHandler(handler); // example Handler handler = new ConsoleHandler(); logger.addHandler(handler); logger.removeHandler(handler); 

Logijal võib olla mitu käitlejat. Kõigi käitlejate hankimiseks kasutame järgmist koodi:

 Handler() handlers = logger.getHandlers(); 

4. Vormindajad

Samuti saab käitleja vorminduse abil vormindada objekti LogRecord stringi enne selle eksportimist välissüsteemidesse .

Java SE-l on kaks sisseehitatud vormindajat :

Vormindajad Kasutage
SimpleFormatter vormindab LogRecordi stringiks
XMLFormatter vormindab vormingu LogRecord XML-i

Halduri vormindamiseks saame kasutada järgmist koodi:

 // formats to string form handler.setFormatter(new SimpleFormatter()); // formats to XML form handler.setFormatter(new XMLFormatter()); 

LogManager

LogManager objekti jälgib globaalse metsaraie teavet. See loeb ja hooldab logimise konfiguratsiooni ja logija eksemplare.

Logihaldur on üksikisik, mis tähendab, et sellest instantsitakse ainult üks eksemplar.

Logihalduri eksemplari hankimiseks kasutame järgmist koodi:

 LogManager manager = new LogManager(); 

Raie eelised

Siin on mõned Java-s sisselogimise eelised.

  • aitab jälgida programmi kulgu
  • aitab võimalike vigade tabamisel
  • pakub tuge probleemide diagnoosimiseks ja silumiseks

Huvitavad Artiklid...