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.logging
pakendis 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 .

1. logija
Logger
Klassi meetodeid raie. Saame Logger
klassi 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.Logger
Logger
Siin luuakse see uus Logger
objekt või tagastatakse Logger
sama nimega olemasolev .
A- Logger
klassi määratlemine praeguse klassi järgi on tavapärane class.getName()
.
Logger logger = Logger.getLogger(MyClass.class.getName());
Märkus. See meetod viskab, NullPointerException
kui edastatud nimi on null
.
Igal neist Logger
on 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 OFF
ja 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 FINE
on 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