Kaj je zapisovalnik v Javi in ​​zakaj ga uporabljate?



Ta članek o Loggerju v Javi je izčrpen vodnik po API-ju za beleženje Java, ki se uporablja za zapisniške rešitve med ustvarjanjem projektov.

Beleženje je pomembna lastnost, ki jo morajo razvijalci upoštevati za sledenje napakam. , ki je eden izmed najbolj priljubljenih programskih jezikov, ima prilagodljiv pristop k beleženju z zagotavljanjem osnovnega API-ja za beleženje. V tem članku o Loggerju v Javi bom razpravljal o tem lahko s to funkcijo omogoči razširljivo beleženje v Javi.

V tem članku bodo obravnavane naslednje teme:





    1. Potreba po sečnji
    2. Beleženje komponent
    3. Kaj je Logger?
    4. Appender ali vodniki
    5. Postavitev ali oblikovalci

Preden se poglobimo v sečnjo v javi, razjasnimo potrebo po prijavi.

Potreba po sečnji

Med izdelavo aplikacij se pogosto srečujemo z napakami, ki jih je treba odpraviti. Tako lahko s pomočjo dnevnikov enostavno dobimo informacije o dogajanju v aplikaciji z zapisom napak in nenavadnih okoliščin. Zdaj se vam morda zdi, da zakaj ne bi uporabili izjave System.out.print () v . No, težava teh izjav je, da se bodo dnevniška sporočila natisnila samo na konzoli. Ko boste konzolo samodejno zaprli, bodo vsi dnevniki izgubljeni. Dnevniki zato ne bodo trajno shranjeni in se bodo prikazovali posebej, saj gre za enonitno okolje.



Da bi se izognili takim težavam, je prijava v Javo poenostavljena s pomočjoAPI, zagotovljen prekjava.util.loggingpaket inorg.apache.log4j. *paket.

Beleženje komponent

Komponente dnevnika Java pomagajo razvijalcu ustvariti dnevnike, jih posredovati na ustrezen cilj in vzdrževati pravilno obliko. Sledijo trije sestavni deli:

  • Drvarji - odgovoren za zajemanje zapisov dnevnika in njihovo posredovanje ustreznemu pritožniku.
  • Dodatki ali vodniki - Odgovorni so za snemanje dnevnih dogodkov do cilja. Appenders pred pošiljanjem izhodov oblikujejo dogodke s pomočjo Layouts.
  • Postavitve ali oblikovalci - odgovoren za določitev izgleda podatkov, ko se pojavijo v vnosu v dnevnik.

Za delovanje vseh treh komponent se lahko sklicujete na spodnjo sliko:



Beleženje komponent - Logger v Javi - Edureka

Ko aplikacija izvede dnevniški klic, komponenta Logger zabeleži dogodek v LogRecord in ga posreduje ustreznemu programu Appender. Nato je zapis oblikoval z uporabo postavitve glede na zahtevano obliko. Poleg tega lahko tudi več filtrov določite, katere dodatke je treba uporabiti za dogodke.

Zdaj pa poglobimo, kaj je zapisovalnik v Javi.

Kaj je Logger v Javi?

Loggerji v Javi so predmeti, ki sprožijo dnevniške dogodke. Ustvarijo se in se pokličejo v kodi aplikacije, kjer ustvarijo dnevniške dogodke, preden jih posredujejo naslednji komponenti, ki je Appender. V enem razredu lahko uporabite več dnevnikov, da se odzovete na različne dogodke ali uporabite dnevnike v hierarhiji. Običajno jih poimenujejo s pomočjo hierarhičnega imenskega prostora, ločenega s pikami. Vsa imena dnevnikov morajo temeljiti na razredu ali imenu paketa prijavljene komponente.

Poleg tega vsak sekalec vodi evidenco najbližjega obstoječega prednika v Dnevniki imenski prostor in je z njim povezan tudi »nivo«. No, o drvarjih bom razpravljal v zadnjem delu tega članka, toda pred tem naj vam pokažem, kako ustvarite drvar v Javi.

Ustvari nov Logger

Postopek ustvarjanja novega Loggerja v Javi je precej preprost. Moraš uporabitiLogger.getLogger ()metoda. ThegetLogger () identificira ime Loggerja in vzame niz kot parameter. Torej, če Logger že obstaja, se ta Logger vrne, sicer se ustvari nov Logger.

Sintaksa:

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

Tu je SampleClass ime razreda, za katerega dobimo objekt Logger.

Primer:

javni razred Customer {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Zdaj, ko sem vam povedal, kako ustvariti Logger v Javi, si oglejmo različne ravni, ki so na voljo v beleženju.

Dnevnik ravni

Dnevniki se uporabljajo za kategorizacijo dnevnikov po njihovi resnosti ali vplivu na stabilnost aplikacije. Theorg.apache.log4j. *paket injava.util.loggingoba zagotavljata različno raven sečnje. Oglejmo si vsakega posebej.

org.apache.log4j. *paket vsebuje naslednje stopnje v padajočem vrstnem redu:

  • FATAL
  • NAPAKA
  • OPOZORILO
  • INFO
  • DEBUG

java.util.loggingpaket vsebuje naslednje stopnje v padajočem vrstnem redu:

kaj je preobremenitev funkcije v c ++
  • TEŽKO (NAJVIŠJA RAVEN)
  • OPOZORILO
  • INFO
  • KONFIG
  • V REDU
  • FINER
  • NAJBOLJŠA (NAJNIŽJA RAVEN)

Poleg tega zgornji paket ponuja tudi dve dodatni ravniVSEinIZKLOPLJENOse uporablja za beleženje vseh sporočil oziroma onemogočanje dnevnika.

Primer prijave v Javo z uporaboorg.apache.log4j. *paket:

import org.apache.log4j.Logger javni razred Stranka {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('OPOZORILO' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Končni izhod')}}

Torej, če je vaš izhodroot logger kot raven WARN v našem log4j.properties datoteka, nato bodo vsa sporočila o napakah z višjo prioriteto od OPOZORILA natisnjena, kot je prikazano spodaj:

Raven lahko nastavite tudi z uporabo metode setLevel () izjava.util.loggingpaket kot spodaj:

logger.setLevel (Level.WARNING)

Primer prijave v Javo z uporabojava.util.loggingpaket:

paket edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * class EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) public void sampleLog () {LOGGER.log (Level.WARNING, 'Welcome to Edureka!')}} kupec javnega razreda {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, 'Hello! Welcome from Edureka')}}

Če želite omogočiti prijavo v aplikacijo s pomočjoorg.apache.log4j. *paket alijava.util.loggingpaket, morate konfigurirati datoteko lastnosti. Nato v tem članku o Loggerju v Javi razpravljajmo o datoteki lastnosti obeh.

Datoteka z lastnostmi paketa Log4j in Java Util Package

Vzorčna datoteka z lastnostmi Log4j:

# Omogoči možnost Root logger log4j.rootLogger = INFO, datoteka, stdout # Priložite priponke za tiskanje datoteke log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10 MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =% d {llll-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Priložite priponke za tiskanje na konzoli 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 {llll-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Datoteka lastnosti Log4j je ustvarjena znotraj mape src projekta.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Natisne vse dnevnike v datoteki
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Natisne vse dnevnike v konzoli
  • log4j.appender.file.File = D: loglogging.log -> Določa lokacijo datoteke dnevnika
  • log4j.appender.file.MaxFileSize = 10 MB -> Največja velikost dnevniške datoteke do 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Omeji število varnostnih kopij na 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Določa vzorec, po katerem se bodo dnevniki tiskali v dnevniško datoteko.
  • log4j.appender.file.layout.ConversionPattern =% d {llll-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Nastavi privzeti vzorec pretvorbe.

Vzorec Datoteka z lastnostmi paketa Java Util

handlers = java.util.logging.ConsoleHandler .level = OPOZORILO # Izhod bo shranjen v privzetem imeniku 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 # Raven dnevnikov bo omejena na OPOZORILO in več. java.util.logging.ConsoleHandler.level = OPOZORILO java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Tukaj,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Datoteke dnevnika bi bile zapisane vC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Največja količina, ki jo zapisovalnik zapisuje v katero koli datoteko v bajtih.
  • java.util.logging.FileHandler.count = 1 -> Določa število izhodnih datotek
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Omeni oblikovalnik, uporabljen za formatiranje. Tu se uporablja XML Formatter.
  • java.util.logging.ConsoleHandler.level = OPOZORILO -> Nastavi privzeto raven dnevnika na OPOZORILO
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->DoločaFormatterza uporabo vsehConsoleHandler‘S. Tu se uporablja SimpleFormatter.

Dogodki beleženja

Za prijavo dogodkov , poskrbite, da boste dodelili raven, s katero boste dogodke zlahka zapolnili. Če želite dodeliti raven in omeniti sporočilo, lahko uporabite spodnje metode:

1. metoda:

logger.log (Level.INFO, “Prikaži sporočilo”)
Tu je nivo INFO, sporočilo, ki ga želite natisniti, pa je 'Prikaži sporočilo'.

2. metoda:

logger.info (»Prikaži sporočilo«)

Če želite zagotoviti, da Logger v Javi beleži samo dogodke, ki so na ali nad nivojem INFO, lahko uporabite setLevel () zgoraj obravnavane metode.

Zdaj, ko sem razpravljal o uporabi Loggerja v Javi, se pogovorimo o naslednji komponenti arhitekture Log4j, tj. O Appenders.

Appender ali vodniki

Appender ali Handlers so odgovorni za snemanje dnevnih dogodkov do cilja. Vsak zapisovalnik ima dostop do več upravljavcev in od dnevnika prejme sporočilo dnevnika. Nato Appenders z oblikovalniki ali postavitvami oblikujejo dogodke in jih pošljejo na ustrezen cilj.

Appender lahko izklopite z metodo setLevel (Level.OFF). Dva najbolj običajna vodnika vjava.util.loggingpaket so naslednji:

  • FileHandler: Sporočite dnevniško sporočilo v datoteko
  • ConsoleHandler: Zapiše sporočilo dnevnika v konzolo

Za vaše boljše razumevanje sem v razdelku z lastnostmi razložil nekaj dodatkov.

Postavitev ali oblikovalci

Postavitev Formatterjev se uporablja za formatiranje in pretvorbo podatkov v dnevniškem dogodku.Dnevnik ogrodja zagotavljajo postavitve za HTML, XML, Syslog, JSON, golo besedilo in druge dnevnike.

  1. SimpleFormatter : Ustvari besedilna sporočila z osnovnimi informacijami.
  2. XMLFormatter : Ustvari sporočilo XML za dnevnik

Za vaše boljše razumevanje sem v razdelku z lastnostmi razložil nekaj postavitev.S tem smo prišli do konca tega spletnega dnevnika na temo “Logger in Java”. Upam, da vam je jasno, kaj so vas naučili v tem članku.

Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam omogoči uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika 'Logger in Java', mi se vam bomo javili v najkrajšem možnem času.