„Java“ registravimas

Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java Logging“ ir įvairius jos komponentus.

„Java“ leidžia mums kurti ir užfiksuoti žurnalo pranešimus ir failus registravimo proceso metu.

„Java“ registravimui reikalingos sistemos ir API. „Java“ java.util.loggingpakete yra įmontuota registravimo sistema .

Prisijungimo tikslais taip pat galime naudoti trečiųjų šalių sistemas, tokias kaip „Log4j“, „Logback“ ir daugelį kitų.

„Java“ registravimo komponentai

Žemiau pateiktame paveiksle pavaizduoti pagrindiniai „Java Logging“ API ( java.util.logging) komponentai ir valdymo srautas .

„Java“ registravimas

1. Medienos kirtėjas

LoggerKlasė suteikia metodus medienos ruoša. Mes galime iš karto nustatyti objektus iš Loggerklasės ir iškviesti jo metodus registravimo tikslais.

Paimkime pavyzdį.

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

getLogger()Iš metodą Loggerklasėje yra naudojama ir siekiant rasti arba sukurti naują Logger. Stygos argumentas apibrėžia registratoriaus pavadinimą.

Čia sukuriamas naujas Loggerobjektas arba grąžinamas esamas Loggertuo pačiu pavadinimu.

Tai yra įprasta apibrėžti a Loggerpo dabartinės klasės naudojant class.getName().

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

Pastaba: Šis metodas bus naudingas, NullPointerExceptionjei perduotas vardas yra null.

Kiekvienas Loggerturi lygį, kuris nustato žurnalo pranešimo svarbą. Yra 7 pagrindiniai žurnalo lygiai:

Žurnalo lygis (mažėjimo tvarka) Naudokite
DAUG rimta nesėkmė
ĮSPĖJIMAS įspėjamasis pranešimas, potenciali problema
INFO bendra informacija apie vykdymo laiką
PATIKRINTI konfigūracijos informacija
FINE bendra informacija apie kūrėjus (pranešimų sekimas)
FINER išsami kūrėjo informacija (pranešimų sekimas)
GERIAUSIA labai išsami kūrėjo informacija (pranešimų sekimas)
IŠJUNGTA išjungti visų lygių registravimą (nieko neužfiksuoti)
VISI įjungti visų lygių registravimą (užfiksuoti viską)

Kiekvienas žurnalo lygis turi sveiko skaičiaus vertę, kuri nustato jų sunkumą, išskyrus du specialius žurnalo lygius OFFir ALL.

Žurnalas registruojamas

Pagal numatytuosius nustatymus visada užregistruojami trys aukščiausi žurnalo lygiai. Norėdami nustatyti kitą lygį, galime naudoti šį kodą:

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

Šiame pavyzdyje FINEnustatomas registruoti tik lygis ir aukštesni už jį lygiai. Visi kiti žurnalo pranešimai atmetami.

Dabar norėdami užregistruoti pranešimą naudojame log()metodą.

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

Yra greito registravimo metodai norimam lygiui.

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

Tada visos žurnalo užklausos, perėjusios nustatytą žurnalo lygį, persiunčiamos į „ LogRecord“ .

Pastaba: Jei nustatomas registruotojo lygis null, jo lygis paveldimas iš jo tėvų ir t. T. Medyje.

2. Filtrai

Filtras (jei jis yra) nustato, ar „ LogRecord“ reikia persiųsti, ar ne. Kaip rodo pavadinimas, jis filtruoja žurnalo pranešimus pagal konkrečius kriterijus.

LogRecord“ iš registravimo žurnalo tvarkytojo ir iš žurnalo tvarkytojo į išorines sistemas perduodamas tik tada, jei jis atitinka nurodytus kriterijus.

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

3. Tvarkytojai (priedai)

Žurnalo tvarkytojas arba priedai gauna „ LogRecord“ ir eksportuoja jį į įvairius taikinius.

„Java SE“ siūlo 5 įmontuotus tvarkykles:

Tvarkytojai Naudokite
StreamHandler rašo an OutputStream
ConsoleHandler rašo į konsolę
FileHandler rašo į bylą
SocketHandler rašo į nuotolinius TCP prievadus
MemoryHandler rašo į atmintį

Tvarkytojas gali perduoti „ LogRecord “ filtrui, kad vėl nustatytų, ar jį galima persiųsti į išorines sistemas, ar ne.

Norėdami pridėti naują tvarkytuvą, naudojame šį kodą:

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

Norėdami pašalinti prižiūrėtoją, naudojame šį kodą:

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

Miškininkystėje gali būti keli tvarkytojai. Norėdami gauti visus tvarkytojus, mes naudojame šį kodą:

 Handler() handlers = logger.getHandlers(); 

4. Formatai

Tvarkytojas taip pat gali naudoti „ Formatter“, kad suformatuotų „ LogRecord“ objektą į eilutę prieš eksportuodamas jį į išorines sistemas.

„Java SE“ turi du įmontuotus „ Formatters“ :

Formatai Naudokite
SimpleFormatter formatuoja „ LogRecord“ į eilutę
XMLFormatter formatuoja „ LogRecord“ į XML formą

Mes galime naudoti šį kodą, norėdami suformatuoti tvarkytuvą:

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

„LogManager“

LogManager“ objektas seka visuotinę registravimo informaciją. Ji nuskaito ir prižiūri registravimo konfigūraciją ir kaupiklio egzempliorius.

Žurnalo tvarkytuvas yra pavienis, o tai reiškia, kad tik vienas jo egzempliorius yra momentinis.

Norėdami gauti žurnalo tvarkyklės egzempliorių, naudojame šį kodą:

 LogManager manager = new LogManager(); 

Kirtimų privalumai

Štai keletas prisijungimo prie „Java“ privalumų.

  • padeda stebėti programos eigą
  • padeda užfiksuoti galimas klaidas
  • teikia paramą problemoms diagnozuoti ir derinimui

Įdomios straipsniai...