Java reģistrēšana

Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java reģistrēšanu un dažādām tās sastāvdaļām.

Java ļauj mums izveidot un uzņemt žurnālziņojumus un failus, izmantojot reģistrēšanas procesu.

Java reģistrēšanai ir nepieciešami ietvari un API. Java java.util.loggingpakotnē ir iebūvēta reģistrēšanas sistēma .

Mežizstrādes nolūkos mēs varam izmantot arī trešo pušu ietvarus, piemēram, Log4j, Logback un daudz ko citu.

Java mežizstrādes komponenti

Zemāk redzamais attēls atspoguļo Java Logging API ( java.util.logging) galvenos komponentus un vadības plūsmu .

Java reģistrēšana

1. mežizstrādātājs

LoggerKlase nodrošina metodes mežizstrādi. Mēs varam izcelt objektus no Loggerklases un izsaukt tā metodes reģistrēšanas vajadzībām.

Ņemsim piemēru.

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

getLogger()Par metodi Loggerklasē tiek izmantots, lai atrastu vai izveidotu jaunu Logger. Virknes arguments nosaka reģistrētāja nosaukumu.

Šeit tas izveido jaunu Loggerobjektu vai atgriež esošu Loggerar tādu pašu nosaukumu.

Tā ir konvencija, lai definētu a Loggerpēc pašreizējās klases, izmantojot class.getName().

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

Piezīme: Šī metode mest NullPointerException, ja pagājis nosaukums ir null.

Katram no tiem Loggerir līmenis, kas nosaka žurnāla ziņojuma nozīmi. Ir 7 galvenie žurnāla līmeņi:

Žurnāla līmenis (dilstošā secībā) Izmantot
NOPIETNI nopietna neveiksme
BRĪDINĀJUMS brīdinājuma ziņojums, iespējama problēma
INFO vispārīga informācija par izpildlaiku
KONFIGURĒT konfigurācijas informācija
SODA vispārīga informācija par izstrādātājiem (ziņojumu izsekošana)
FINER detalizēta informācija par izstrādātāju (ziņojumu izsekošana)
FINEST ļoti detalizēta informācija par izstrādātājiem (ziņojumu izsekošana)
IZSLĒGTS izslēgt reģistrēšanu visos līmeņos (neko neuzņemt)
VISI ieslēgt reģistrēšanu visos līmeņos (uzņemt visu)

Katram žurnāla līmenim ir vesels skaitlis, kas nosaka to smagumu, izņemot divus īpašus žurnāla līmeņus OFFun ALL.

Notiek ziņojuma reģistrēšana

Pēc noklusējuma vienmēr tiek reģistrēti trīs galvenie žurnāla līmeņi. Lai iestatītu citu līmeni, mēs varam izmantot šādu kodu:

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

Šajā piemērā FINEreģistrēšanai tiek iestatīts tikai līmenis un līmeņi virs tā. Visi pārējie žurnāla ziņojumi tiek atmesti.

Tagad, lai reģistrētu ziņojumu, mēs izmantojam log()metodi.

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

Vēlamo līmeņu mežizstrādei ir stenogrāfijas metodes.

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

Pēc tam visi žurnāla pieprasījumi, kas ir nokārtojuši iestatīto žurnāla līmeni, tiek pārsūtīti uz LogRecord .

Piezīme. Ja reģistrētāja līmenis ir iestatīts uz null, tā līmenis tiek mantots no tā vecākiem un tā tālāk līdz kokam.

2. Filtri

Filtrs (ja tāds ir) nosaka, vai LogRecord ir jāpārsūta. Kā norāda nosaukums, tas filtrē žurnāla ziņojumus atbilstoši konkrētiem kritērijiem.

LogRecord tiek nodota tikai no mežizstrādātāja žurnālā apdarinātājs un no žurnāla apdarinātājs ar ārējām sistēmām, ja tas iztur norādītos kritērijus.

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

3. Apstrādātāji (pievienotāji)

Žurnālu apstrādātājs vai papildinātāji saņem LogRecord un eksportē to uz dažādiem mērķiem.

Java SE nodrošina 5 iebūvētus apstrādātājus:

Apstrādātāji Izmantot
StreamHandler raksta an OutputStream
ConsoleHandler raksta uz konsoli
FileHandler raksta failā
SocketHandler raksta attālās TCP ostās
MemoryHandler raksta atmiņā

Apstrādātājs var nodot LogRecord filtram, lai atkal noteiktu, vai to var pārsūtīt uz ārējām sistēmām.

Lai pievienotu jaunu apdarinātāju, mēs izmantojam šādu kodu:

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

Lai noņemtu apdarinātāju, mēs izmantojam šādu kodu:

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

Mežizstrādātājam var būt vairāki apstrādātāji. Lai iegūtu visus apstrādātājus, mēs izmantojam šādu kodu:

 Handler() handlers = logger.getHandlers(); 

4. Formatētāji

Apstrādātājs var arī izmantot Formatter, lai formatētu LogRecord objektu virknē, pirms to eksportē uz ārējām sistēmām.

Java SE ir divi iebūvēti formatētāji :

Formatētāji Izmantot
SimpleFormatter formatē LogRecord uz virkni
XMLFormatter formatē LogRecord uz XML formu

Apstrādātāja formatēšanai mēs varam izmantot šādu kodu:

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

LogManager

LogManager objekts seko līdzi globālā mežizstrādes informāciju. Tas nolasa un uztur mežizstrādes konfigurāciju un reģistrētāja gadījumus.

Žurnāla pārvaldnieks ir vienskaitlis, kas nozīmē, ka tiek instantificēts tikai viens tā eksemplārs.

Lai iegūtu žurnāla pārvaldnieka instanci, mēs izmantojam šādu kodu:

 LogManager manager = new LogManager(); 

Mežizstrādes priekšrocības

Šeit ir dažas no Java reģistrēšanas priekšrocībām.

  • palīdz uzraudzīt programmas plūsmu
  • palīdz notvert visas iespējamās kļūdas
  • sniedz atbalstu problēmu diagnosticēšanai un atkļūdošanai

Interesanti raksti...