Kas ir Java reģistrētājs un kāpēc jūs to izmantojat?



Šis raksts par Java reģistrētāju ir visaptveroša rokasgrāmata par Java reģistrēšanas API, kas tiek izmantota reģistrēšanas risinājumiem, veidojot projektus.

Reģistrēšana ir svarīga funkcija, kas izstrādātājiem jāņem vērā, lai izsekotu kļūdas. , kas ir viena no populārākajām programmēšanas valodām, nāk ar pielāgojamu pieeju mežizstrādei, nodrošinot pamata reģistrēšanas API. Tātad, šajā rakstā par Java reģistrētāju es apspriedīšu, kā to izdarīt var izmantot šo funkciju, lai iespējotu paplašināmu reģistrēšanu Java.

Šajā rakstā tiks aplūkotas šādas tēmas:





    1. Mežizstrādes nepieciešamība
    2. Mežizstrādes komponenti
    3. Kas ir reģistrētājs?
    4. Apendents vai apstrādātāji
    5. Izkārtojums vai formatētāji

Pirms tam mēs dziļi ienirstam mežizstrādē java, ļaujiet mums saprast mežistrādes nepieciešamību.

Mežizstrādes nepieciešamība

Veidojot lietojumprogrammas, mēs bieži sastopamies ar kļūdām, kuras ir atkļūdotas. Tātad, izmantojot žurnālus, mēs varam viegli iegūt informāciju par lietojumprogrammā notiekošo, ierakstot kļūdas un neparastus apstākļus. Tagad tas varētu likties prātā, kāpēc gan neizmantot System.out.print () paziņojumu . Šo paziņojumu problēma ir tā, ka žurnāla ziņojumi tiks drukāti tikai konsolē. Tātad, automātiski aizverot konsoli, visi žurnāli tiks zaudēti. Tāpēc žurnāli netiks glabāti neatgriezeniski, un tie tiks parādīti pa vienam, jo ​​tā ir vide ar vienu pavedienu.



Lai izvairītos no šādām problēmām, pieteikšanās Java tiek vienkāršota arAPI nodrošina caurjava.util.loggingiepakojums unorg.apache.log4j. *iepakojums.

Mežizstrādes komponenti

Java reģistrēšanas komponenti palīdz izstrādātājam izveidot žurnālus, nodot žurnālus attiecīgajam mērķim un uzturēt pareizu formātu. Šīs ir trīs sastāvdaļas:

  • Mežizstrādātāji - Atbildīgs par žurnāla ierakstu tveršanu un nodošanu attiecīgajam iesniedzējam.
  • Iesniedzēji vai apstrādātāji - Viņi ir atbildīgi par žurnāla notikumu reģistrēšanu galamērķī. Pirms izvadu sūtīšanas pielikumi formatē notikumus ar izkārtojuma palīdzību.
  • Izkārtojumi vai formatētāji - Atbild par to, kā noteikt datus, kad tie parādās žurnāla ierakstā.

Visu trīs komponentu darbību var skatīt zemāk esošajā attēlā:



Mežizstrādes komponenti - reģistrētājs Java - Edureka

Kad lietojumprogramma veic reģistrēšanas izsaukumu, reģistrētāja komponents ieraksta notikumu LogRecord un pārsūta to attiecīgajam papildinātājam. Tad tā izveidoja ierakstu, izmantojot izkārtojumu atbilstoši vajadzīgajam formātam. Bez tam jūs varat arī izmantot vairākus filtrus, lai norādītu, kuri pielikumi būtu jāizmanto notikumiem.

Ļaujiet mums padziļināti saprast, kas ir Java reģistrētājs.

Kas ir reģistrētājs Java?

Reģistrētāji Java ir objekti, kas izraisa žurnāla notikumus. Tie tiek izveidoti un izsaukti lietojumprogrammas kodā, kur tie ģenerē žurnāla notikumus, pirms tos nodod nākamajam komponentam, kas ir Appender. Varat izmantot vairākus reģistrētājus vienā klasē, lai reaģētu uz dažādiem notikumiem, vai izmantot reģistrētājus hierarhijā. Parasti tos nosauc, izmantojot hierarhisko ar punktiem atdalīto nosaukumvietu. Turklāt visiem reģistrētāja nosaukumiem jābūt balstītiem uz reģistrētā komponenta klasi vai pakotnes nosaukumu.

Papildus tam katrs mežizstrādātājs seko līdzi tuvākajam esošajam senčam Baļķi vārdu telpā, un ar to ir saistīts arī “līmenis”. Loggerus es apspriedīšu šī raksta otrajā daļā, bet pirms tam ļaujiet man parādīt, kā izveidot reģistrētāju Java.

Izveidojiet jaunu reģistrētāju

Jauna Logger izveide Java ir ļoti vienkārša. Jums ir jāizmantoLogger.getLogger ()metodi. ThegetLogger () identificē reģistrētāja vārdu un kā parametru ņem virkni. Tātad, ja reģistrētājs pastāv jau iepriekš, tas reģistrētājs tiek atgriezts, pretējā gadījumā tiek izveidots jauns reģistrētājs.

Sintakse:

static Logger logger = Logger.getLogger (SampleClass.class.getName ())

Šeit SampleClass ir klases nosaukums, kuram mēs iegūstam objektu Logger.

Piemērs:

publiskās klases klients {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Tagad, kad es jums teicu, kā izveidot reģistrētāju Java, ļaujiet mums apskatīt dažādos pieejamos reģistrēšanas līmeņus.

Žurnāla līmeņi

Žurnālu līmeņi tiek izmantoti žurnālu kategorizēšanai pēc to smaguma pakāpes vai ietekmes uz lietojumprogrammas stabilitāti. Theorg.apache.log4j. *iepakojums unjava.util.loggingabi nodrošina atšķirīgu mežizstrādes līmeni. Apskatīsim katru no tiem pa vienam.

org.apache.log4j. *pakete nodrošina šādus līmeņus dilstošā secībā:

  • FATĀLS
  • KĻŪDA
  • BRĪDINĀT
  • INFO
  • Atkļūdot

java.util.loggingpakete nodrošina šādus līmeņus dilstošā secībā:

  • LIELS (AUGSTĀKĀ LĪMENIS)
  • BRĪDINĀJUMS
  • INFO
  • KONFIGURĒT
  • SODA
  • FINER
  • FINEST (ZEMĀKAIS LĪMENIS)

Papildus tam iepriekš minētajā paketē ir paredzēti arī divi papildu līmeņiVISIunIZSLĒGTSizmanto, lai reģistrētu visus ziņojumus un attiecīgi atspējotu reģistrēšanu.

Pieteikšanās Java piemērs, izmantojotorg.apache.log4j. *iepakojums:

importēt org.apache.log4j.Logger publiskās klases klientu {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Final Output')}}

Tātad, ja jūsu produkcija irroot reģistrētājs kā WARN līmeņa mūsu log4j.pašības failu, tad visi kļūdu ziņojumi ar augstāku prioritāti nekā WARN tiks izdrukāti šādi:

Varat arī iestatīt līmeni, izmantojot metodi setLevel ()java.util.loggingiepakojums, kā norādīts zemāk:

kā ģenerēt nejaušu virkni Java
logger.setLevel (Level.WARNING)

Pieteikšanās Java piemērs, izmantojotjava.util.loggingiepakojums:

pakete edureka importēt java.io.IOException importēt java.util.logging.Level importēt java.util.logging.Logger importēt java.util.logging. * klase EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) public void sampleLog () {LOGGER.log (Level.WARNING, 'Welcome to Edureka!')}} public class Customer {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING, 'Sveiki, sveicināti no Edureka')}}

Lai iespējotu pieteikšanos savā lietojumprogrammā, izmantojotorg.apache.log4j. *iepakojums vaijava.util.loggingpakete, jums jākonfigurē rekvizītu fails. Nākamais šajā rakstā par programmu Logger Java ļaujiet mums apspriest to abu failu failu.

Rekvizītu fails Log4j un Java Util pakotnei

Log4j rekvizītu faila paraugs:

# Iespējot saknes reģistrētāja opciju log4j.rootLogger = INFO, fails, standarts # Pievienojiet pielikumus, lai drukātu failu log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {gggg-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Pievienojiet papildinājumus, lai drukātu uz konsoles log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {gggg-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Log4j rekvizītu fails tiek izveidots projekta src mapē.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Drukā visus faila žurnālus
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Drukā visus konsoles žurnālus
  • log4j.appender.file.File = D: loglogging.log -> Norāda žurnāla faila atrašanās vietu
  • log4j.appender.file.MaxFileSize = 10 MB -> Maksimālais žurnāla faila lielums līdz 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Ierobežo dublējuma failu skaitu līdz 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Norāda modeli, kādā žurnāli tiks drukāti žurnālfailā.
  • log4j.appender.file.layout.ConversionPattern =% d {gggg-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Iestata noklusējuma reklāmguvumu modeli.

Paraugs Java Util pakotnes rekvizītu fails

handlers = java.util.logging.ConsoleHandler .level = BRĪDINĀJUMS # Izeja tiks saglabāta noklusējuma direktorijā java.util.logging.FileHandler.pattern =% h / java% u.log java.util.logging.FileHandler.limit = 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # Žurnālu līmenis būs ierobežots līdz BRĪDINĀJUMS un augstāk. java.util.logging.ConsoleHandler.level = BRĪDINĀJUMS java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Šeit,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Žurnālfaili tiks rakstīti uzC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Maksimālā summa, ko reģistrētājs uzraksta uz jebkuru failu baitos.
  • java.util.logging.FileHandler.count = 1 -> Norāda izvades failu skaitu
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Norāda formatēšanai izmantoto formatētāju. Šeit tiek izmantots XML formatētājs.
  • java.util.logging.ConsoleHandler.level = BRĪDINĀJUMS -> noklusējuma žurnāla līmeni iestata BRĪDINĀJUMS
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->NorādaFormatētājsjāizmanto visiemConsoleHandler‘S. Šeit tiek izmantots SimpleFormatter.

Notikumu reģistrēšana

Lai pieteiktos notikumus , jums jāpārliecinās, vai esat piešķīris līmeni, lai notikumus varētu viegli izfiltrēt. Lai piešķirtu līmeni un pieminētu ziņojumu, varat izmantot šādas metodes:

1. metode:

logger.log (Level.INFO, “Parādīt ziņojumu”)
Šeit līmenis ir INFO, un drukājamais ziņojums ir 'Display Message'.

2. metode:

logger.info (“Parādīt ziņojumu”)

Lai pārliecinātos, ka Java reģistrētājs reģistrē tikai tos notikumus, kas ir INFO līmenī vai virs tā, varat izmantot setLevel () metode, kas tika apspriesta iepriekš.

Tagad, kad esmu apspriedis, kā lietot Logger Java, apspriedīsim nākamo Log4j arhitektūras komponentu, t.i., Appenders.

Apendents vai apstrādātāji

Appender vai Handlers ir atbildīgi par žurnāla notikumu reģistrēšanu galamērķī. Katram reģistrētājam ir piekļuve vairākiem apstrādātājiem, un viņš saņem žurnāla ziņojumu no reģistrētāja. Pēc tam Appenders izmanto formatētājus vai izkārtojumus, lai formatētu notikumus un nosūtītu tos uz attiecīgo galamērķi.

Lietotāju var izslēgt, izmantojot metodi setLevel (Level.OFF). Divi standarta apstrādātāji Austrālijājava.util.loggingpaketes ir šādas:

  • FileHandler: Uzrakstiet žurnāla ziņojumu failā
  • ConsoleHandler: Uzraksta žurnāla ziņojumu konsolei

Jūsu labākajai izpratnei īpašību sadaļā esmu izskaidrojis dažus papildinātājus.

Izkārtojums vai formatētāji

Formatētāju izkārtojums tiek izmantots, lai formatētu un konvertētu datus žurnāla notikumā.Reģistrēšanas sistēmas nodrošina HTML, XML, Syslog, JSON, vienkārša teksta un citu žurnālu izkārtojumus.

  1. SimpleFormatter : Ģenerē īsziņas ar pamatinformāciju.
  2. XML formāts : Ģenerē žurnālam XML ziņojumu

Jūsu labākai izpratnei esmu aprakstījis dažus izkārtojumus īpašību sadaļā.Ar to mēs esam nonākuši pie šī emuāra beigām sadaļā “Logger in Java”. Es ceru, ka jums, puiši, ir skaidrs, kas jums mācīts šajā rakstā.

Pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji. Kurss ir paredzēts, lai dotu jums iespēju sākt Java programmēšanu un apmācīt gan Java, gan uzlabotas koncepcijas, kā arī dažādas Java struktūras, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “Logger in Java” komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.