Što je logger u Javi i zašto ga koristite?



Ovaj je članak o Loggeru na Javi sveobuhvatan vodič o Java API-ju za bilježenje koji se koristi za rješenja za bilježenje tijekom stvaranja projekata.

Zapisivanje je važna značajka koju programeri moraju uzeti u obzir da bi vratili pogreške natrag. , jedan od najpopularnijih programskih jezika, dolazi s prilagodljivim pristupom evidentiranju pružanjem osnovnog API-ja za bilježenje. U ovom članku o Loggeru na Javi raspravit ću o tome može koristiti ovu značajku da omogući proširivu prijavu na Javi.

Sljedeće teme bit će obrađene u ovom članku:





    1. Potreba za sječom
    2. Komponente zapisivanja
    3. Što je Logger?
    4. Napadač ili rukovatelji
    5. Izgled ili formati

Prije, duboko zaronimo u prijavu u javi, shvatimo potrebu za prijavom.

Potreba za sječom

Tijekom izrade aplikacija često se suočavamo s pogreškama koje se moraju ispraviti. Dakle, uz pomoć dnevnika možemo lako dobiti informacije o tome što se događa u aplikaciji uz evidenciju pogrešaka i neobičnih okolnosti. Sada bi vam moglo pasti na pamet da, zašto ne biste koristili naredbu System.out.print () u . Pa, problem je s tim izjavama da će se poruke dnevnika ispisivati ​​samo na konzoli. Dakle, nakon što zatvorite konzolu, automatski će se izgubiti svi zapisnici. Stoga se zapisnici neće trajno pohranjivati, već se prikazuju jedan po jedan, jer je to jednonitno okruženje.



Da bi se izbjegli takvi problemi, prijava na Javi pojednostavljuje se uz pomoćAPI koji se pruža putemjava.util.loggingpaket iorg.apache.log4j. *paket.

Komponente zapisivanja

Java komponente dnevnika pomažu programeru da stvori zapisnike, proslijedi ih na odgovarajuće odredište i održi odgovarajući format. Slijede tri komponente:

  • Sjekači - odgovoran za hvatanje zapisa dnevnika i njihovo prosljeđivanje odgovarajućem žalitelju.
  • Dodaci ili rukovatelji - Oni su odgovorni za bilježenje događaja dnevnika do odredišta. Dodaci oblikuju događaje uz pomoć izgleda, prije slanja izlaza.
  • Izgledi ili formati - Odgovorno za utvrđivanje izgleda podataka kada se pojave u zapisniku.

Možete pogledati donju sliku za rad sve tri komponente:



Komponente zapisivanja - Logger u Javi - Edureka

Java front end developer životopis

Kada aplikacija uputi poziv za bilježenje, komponenta Logger bilježi događaj u LogRecord i prosljeđuje ga odgovarajućem Appenderu. Zatim je formatirao zapis koristeći Layout prema potrebnom formatu. Osim toga, možete upotrijebiti i više filtera kako biste odredili koji će se Dodaci koristiti za događaje.

Sada, shvatimo što je dubinski zapisnik u Javi.

Što je Logger na Javi?

Dnevnici evidencije u Javi su objekti koji pokreću događaje iz dnevnika. Oni se stvaraju i pozivaju u kodu aplikacije, gdje generiraju zapisnike događaja prije nego što ih proslijede sljedećoj komponenti koja je Appender. Možete koristiti više zapisnika u jednoj klasi da biste odgovorili na različite događaje ili koristiti zapisnike u hijerarhiji. Obično se imenuju hijerarhijskim prostorom imena odvojenim točkama. Također, sva imena dnevnika moraju se temeljiti na klasi ili nazivu paketa prijavljene komponente.

Osim toga, svaki drvosječa vodi evidenciju o najbližem postojećem pretku u Trupci imenski prostor, a uz to je povezana i „Razina“. Pa, o drvosječama ću raspraviti u drugom dijelu ovog članka, ali prije toga, dopustiću vam da vam pokažem kako stvoriti Logger u Javi.

Stvorite novi zapisnik

Postupak stvaranja novog Loggera na Javi prilično je jednostavan. Morate koristitiLogger.getLogger ()metoda. ThegetLogger () identificira ime biljega i uzima parametar kao niz. Dakle, ako Logger već postoji, taj Logger se vraća, inače se stvara novi Logger.

Sintaksa:

statički logger logger = Logger.getLogger (SampleClass.class.getName ())

Ovdje je SampleClass naziv klase za koju dobivamo objekt Logger.

Primjer:

javna klasa Customer {private static final Logger LOGGER = Logger.getLogger (Customer.class) javna praznina getCustomerDetails () {}}

Sad kad sam vam rekao kako stvoriti Logger u Javi, pogledajmo različite razine dostupne u prijavi.

Razine dnevnika

Razine dnevnika koriste se za kategorizaciju dnevnika prema njihovoj težini ili utjecaju na stabilnost aplikacije. Theorg.apache.log4j. *paket ijava.util.loggingoba omogućuju različite razine bilježenja. Pogledajmo ih svakog po jednog.

org.apache.log4j. *paket pruža sljedeće razine u opadajućem redoslijedu:

  • FATALNO
  • POGREŠKA
  • UPOZORITI
  • INFO
  • DEBUG

java.util.loggingpaket pruža sljedeće razine u opadajućem redoslijedu:

što je virtualna metoda
  • TEŠKO (NAJVIŠA RAZINA)
  • UPOZORENJE
  • INFO
  • KONFIG
  • FINO
  • FINIJE
  • NAJPOLJE (NAJNIŽA RAZINA)

Osim toga, gornji paket također nudi dvije dodatne razineSVIiISKLJUČENOkoristi se za bilježenje svih poruka, odnosno onemogućavanje zapisivanja.

Primjer prijave u Javi pomoćuorg.apache.log4j. *paket:

import org.apache.log4j.Logger javna klasa Kupac {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')}}

Dakle, ako je vaš izlazroot logger kao razina WARN u našem log4j.svojstva datoteka, tada će se ispisati sve poruke o pogreškama s većim prioritetom od WARN:

Također možete postaviti razinu pomoću metode setLevel () izjava.util.loggingpaket kao u nastavku:

logger.setLevel (Level.WARNING)

Primjer prijave u Javi pomoćujava.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) javni void sampleLog () {LOGGER.log (Level.WARNING, 'Dobrodošli u Edureka!')}} javni kupac klase {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, 'Bok! Dobrodošli iz Edureke')}}

Da biste omogućili prijavu u svoj program pomoćuorg.apache.log4j. *paket ilijava.util.loggingpaket, morate konfigurirati datoteku svojstava. Sljedeće u ovom članku o Loggeru na Javi, razgovarajmo o datoteci svojstava obje.

Datoteka svojstava paketa Log4j i Java Util

Uzorak datoteke Svojstva Log4j:

# Omogući opciju matičnog zapisnika log4j.rootLogger = INFO, datoteka, stdout # Priloži priloge za ispis datoteci 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 {yyyy-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Priložite dodatke za ispis 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 {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Datoteka svojstava Log4j kreira se unutar mape src projekta.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Ispisuje sve zapisnike u datoteci
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Ispisuje sve zapisnike u konzoli
  • log4j.appender.file.File = D: loglogging.log -> Određuje mjesto datoteke dnevnika
  • log4j.appender.file.MaxFileSize = 10 MB -> Maksimalna veličina datoteke dnevnika do 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Ograničava broj sigurnosnih kopija datoteka na 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Određuje obrazac u kojem će se zapisnici ispisivati ​​u datoteku dnevnika.
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Postavlja zadani obrazac pretvorbe.

Uzorak Datoteka svojstava paketa Java Util

handlers = java.util.logging.ConsoleHandler .level = UPOZORENJE # Izlaz će se pohraniti u zadani 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 # Razina dnevnika bit će ograničena na UPOZORENJE i više. java.util.logging.ConsoleHandler.level = UPOZORENJE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Ovdje,

java kod za povezivanje na mysql
  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Datoteke dnevnika bi bile zapisane uC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Maksimalna količina koju zapisnik zapisuje u bilo koju datoteku u bajtovima.
  • java.util.logging.FileHandler.count = 1 -> Određuje broj izlaznih datoteka
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Spominje oblikovač koji se koristi za formatiranje. Ovdje se koristi XML Formatter.
  • java.util.logging.ConsoleHandler.level = UPOZORENJE -> Postavlja zadanu razinu dnevnika na UPOZORENJE
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->OdređujeFormatterda ga svi koristeConsoleHandler‘S. Ovdje se koristi SimpleFormatter.

Zapisivanje događaja

Za prijavu događaja , morate biti sigurni da ste dodijelili razinu za lako popunjavanje događaja. Da biste dodijelili razinu i spomenuli poruku, možete se poslužiti sljedećim metodama:

Metoda 1:

logger.log (Level.INFO, “Prikaži poruku”)
Ovdje je razina INFO, a poruka koja se ispisuje je 'Prikaži poruku'.

Metoda 2:

logger.info (“Prikaži poruku”)

Da biste bili sigurni da Logger na Javi bilježi samo događaje koji su na ili iznad razine INFO, možete koristiti setLevel () gore raspravljena metoda.

Sada, kad sam razgovarao o tome kako koristiti Logger u Javi, razgovarajmo o sljedećoj komponenti Log4j arhitekture, tj. O Dodacima.

Napadač ili rukovatelji

Napakač ili voditelji odgovorni su za bilježenje događaja dnevnika do odredišta. Svaki zapisničar ima pristup više obrađivača i prima poruku dnevnika od zapisnika. Zatim, Dodaci koriste Formattere ili Layouts za oblikovanje događaja i slanje na odgovarajuće odredište.

Napakač se može isključiti metodom setLevel (Level.OFF). Dva najstandardnija rukovatelja ujava.util.loggingpaket su sljedeći:

  • FileHandler: Napišite zapisnik u datoteku
  • Obrađivač konzole: Zapisuje poruku dnevnika na konzolu

Jer, za vaše bolje razumijevanje, objasnio sam nekoliko dodataka u odjeljku svojstava.

Izgled ili formati

Izgled programa Formatters koristi se za formatiranje i pretvaranje podataka u događaju iz dnevnika.Okviri za bilježenje pružaju izglede za HTML, XML, Syslog, JSON, obični tekst i druge zapisnike.

  1. SimpleFormatter : Generira tekstualne poruke s osnovnim informacijama.
  2. XMLFormatter : Generira XML poruku za zapisnik

Jer, za vaše bolje razumijevanje, objasnio sam nekoliko izgleda u odjeljku svojstava.Ovim smo došli do kraja ovog bloga na temu 'Logger in Java'. Nadam se da ste jasni sa onim što ste naučili u ovom članku.

Pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA dizajniran je za studente i profesionalce koji žele biti programer Java. Tečaj je dizajniran da vam pruži početnu prednost u Java programiranju i osposobi vas za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'Logger in Java' i javit ćemo vam se što je prije moguće.