Ce este loggerul în Java și de ce îl folosiți?



Acest articol despre Logger în Java este un ghid cuprinzător despre API-ul de înregistrare Java utilizat pentru înregistrarea soluțiilor în timpul creării proiectelor.

Înregistrarea este o caracteristică importantă care trebuie luată în considerare de către dezvoltatori pentru a urmări erorile. , fiind unul dintre cele mai populare limbaje de programare, vine cu o abordare personalizabilă a jurnalizării, oferind un API de jurnalizare de bază. Deci, în acest articol despre Logger în Java, voi discuta cum poate utiliza această caracteristică pentru a activa înregistrarea extensibilă în Java.

Următoarele subiecte vor fi tratate în acest articol:





    1. Necesitatea înregistrării
    2. Componente de înregistrare
    3. Ce este Logger?
    4. Appender sau Handlers
    5. Aspect sau formatare

Înainte, ne scufundăm profund în logarea în java, permiteți-ne să înțelegem necesitatea logării.

tutorial ms sql pentru începători

Necesitatea înregistrării

În timp ce construim aplicații, ne confruntăm adesea cu erori care trebuie depanate. Deci, cu ajutorul jurnalelor, putem obține cu ușurință informații despre ceea ce se întâmplă în aplicație cu o evidență a erorilor și a circumstanțelor neobișnuite. Acum, s-ar putea să vă treacă prin minte că, de ce nu utilizați declarația System.out.print () în . Ei bine, problema cu aceste declarații este că mesajele jurnal vor fi tipărite numai pe consolă. Deci, după ce închideți consola, automat, toate jurnalele se vor pierde. Prin urmare, jurnalele nu vor fi stocate permanent și sunt afișate unul câte unul, deoarece este un mediu cu un singur fir.



Pentru a evita astfel de probleme, conectarea în Java este simplificată cu ajutorulAPI furnizat prin intermediuljava.util.loggingpachet șiorg.apache.log4j. *pachet.

Componente de înregistrare

Componentele de jurnalizare Java ajută dezvoltatorul să creeze jurnale, să treacă jurnalele la destinația respectivă și să mențină un format adecvat. Următoarele sunt cele trei componente:

  • Lemnari - Responsabil de captarea înregistrărilor jurnalului și transmiterea acestora către Appender-ul corespunzător.
  • Anexe sau manipulatori - Sunt responsabili pentru înregistrarea evenimentelor jurnal la o destinație. Anexele formează evenimente cu ajutorul aspectelor, înainte de a trimite ieșiri.
  • Aspecte sau formate - Responsabil de a determina cum arată datele atunci când acestea apar în intrarea în jurnal.

Puteți consulta imaginea de mai jos pentru funcționarea tuturor celor trei componente:



Componente de jurnalizare - Logger în Java - Edureka

Atunci când o aplicație efectuează un apel de înregistrare, componenta Logger înregistrează evenimentul într-un LogRecord și îl redirecționează către Appender-ul corespunzător. Apoi a format înregistrarea utilizând aspectul în conformitate cu formatul dorit. În afară de aceasta, puteți utiliza și mai multe filtre pentru a specifica ce anexe trebuie utilizate pentru evenimente.

Acum, să înțelegem ce este un logger în Java în profunzime.

Ce este Logger în Java?

Loggerele din Java sunt obiecte care declanșează evenimente de jurnal, sunt create și sunt apelate în codul aplicației, unde generează evenimente de jurnal înainte de a le trece la următoarea componentă care este un Appender. Puteți utiliza mai multe logere într-o singură clasă pentru a răspunde la diferite evenimente sau puteți utiliza Logere într-o ierarhie. În mod normal, acestea sunt denumite folosind spațiul de nume ierarhic separat cu puncte. De asemenea, toate numele Logger trebuie să se bazeze pe clasă sau pe numele pachetului componentei înregistrate.

În afară de aceasta, fiecare Logger ține o evidență a celui mai apropiat strămoș existent în Jurnale spațiul de nume și are, de asemenea, un „nivel” asociat. Ei bine, voi discuta despre Loggers în ultima parte a acestui articol, dar înainte de asta, permiteți-mi să vă arăt cum să creați un Logger în Java.

Creați un nou Logger

Procesul de creare a unui nou Logger în Java este destul de simplu. Trebuie să foloseștiLogger.getLogger ()metodă.getLogger () identifică numele Loggerului și ia șir ca parametru. Deci, dacă există un Logger preexistent, acel Logger este returnat, altfel se creează un nou Logger.

Sintaxă:

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

Aici, SampleClass este numele clasei pentru care obținem obiectul Logger.

cum să transformi o dublă într-un int

Exemplu:

public class Client {Private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Acum că v-am spus cum să creați un Logger în Java, permiteți-ne să vedem diferitele niveluri disponibile în jurnalizare.

Niveluri de jurnal

Nivelurile de jurnal sunt folosite pentru a clasifica jurnalele după severitatea lor sau impactul asupra stabilității aplicației.org.apache.log4j. *pachet șijava.util.loggingambele oferă niveluri diferite de înregistrare. Să ne uităm la fiecare dintre ele unul câte unul.

org.apache.log4j. *pachetul oferă următoarele niveluri în ordine descrescătoare:

  • FATAL
  • EROARE
  • A AVERTIZA
  • INFO
  • DEBUG

java.util.loggingpachetul oferă următoarele niveluri în ordine descrescătoare:

  • Sever (cel mai înalt nivel)
  • AVERTIZARE
  • INFO
  • CONFIG
  • AMENDA
  • FINER
  • Cel mai bun

În afară de aceasta, pachetul de mai sus oferă și două niveluri suplimentareTOATEșiOPRITutilizat pentru înregistrarea tuturor mesajelor și, respectiv, pentru dezactivarea înregistrării.

Exemplu de conectare în Java folosindorg.apache.log4j. *pachet:

import org.apache.log4j.Logger public class Client {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('AVERTISMENT') ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Final Output')}}

Deci, dacă rezultatul dvs. esteroot logger ca WARN-level la nivelul nostru log4j.properties fișier, apoi toate mesajele de eroare cu o prioritate mai mare decât WARN vor fi tipărite după cum urmează:

De asemenea, puteți seta nivelul utilizând metoda setLevel () dinjava.util.loggingpachet ca mai jos:

logger.setLevel (Level.WARNING)

Exemplu de conectare în Java folosindjava.util.loggingpachet:

pachet 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!')}} public class Client {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, 'Salut! Bine ați venit de la Edureka')}}

Pentru a activa conectarea în aplicația dvs. utilizândorg.apache.log4j. *pachet saujava.util.loggingpachet, trebuie să configurați fișierul de proprietăți. În acest articol despre Logger în Java, haideți să discutăm fișierul de proprietăți al ambelor.

Fișierul de proprietăți al pachetului Log4j și Java Util

Exemplu de fișier Log4j Properties:

# Enable Root logger option log4j.rootLogger = INFO, fișier, stdout # Atașați anexele la fișierul de imprimare 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 {aaaa-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Atașați anexe pentru a imprima pe consola 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 {aaaa-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Fișierul de proprietăți Log4j este creat în folderul src al proiectului.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Tipărește toate jurnalele dintr-un fișier
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Tipărește toate jurnalele din consolă
  • log4j.appender.file.File = D: loglogging.log -> Specifică locația fișierului jurnal
  • log4j.appender.file.MaxFileSize = 10 MB -> Dimensiunea maximă a fișierului jurnal la 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Limită numărul de fișiere de rezervă la 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Specifică modelul în care jurnalele se vor imprima în fișierul jurnal.
  • log4j.appender.file.layout.ConversionPattern =% d {aaaa-LL-zz HH: mm: ss}% -5p% c {1}:% L -% m% n -> Setează modelul de conversie implicit.

Probă Fișier proprietăți pachet Java Util

handlers = java.util.logging.ConsoleHandler .level = AVERTISMENT # Ieșirea va fi stocată în directorul implicit 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 # Nivelul jurnalelor va fi limitat la AVERTISMENT și peste. java.util.logging.ConsoleHandler.level = AVERTISMENT java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Aici,

java doar la timp compilator
  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Fișierele jurnal ar fi scrise înC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Suma maximă pe care logger-ul o scrie în orice fișier în octeți.
  • java.util.logging.FileHandler.count = 1 -> Specifică numărul de fișiere de ieșire
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Menționează formatatorul utilizat pentru formatare. Aici este utilizat XML Formatter.
  • java.util.logging.ConsoleHandler.level = AVERTISMENT -> Setează nivelul de jurnal implicit la AVERTISMENT
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->SpecificăFormattersă fie folosit de toțiConsoleHandler‘S. Aici se folosește SimpleFormatter.

Înregistrarea evenimentelor

Pentru a vă conecta la evenimente , trebuie să vă asigurați că atribuiți un nivel pentru a elimina cu ușurință evenimentele. Pentru a atribui un nivel și a menționa un mesaj, puteți utiliza metodele de mai jos:

Metoda 1:

logger.log (Level.INFO, „Afișați mesajul”)
Aici, nivelul este INFO și mesajul care va fi tipărit este „Afișați mesajul”.

Metoda 2:

logger.info („Afișați mesajul”)

Pentru a vă asigura că Logger în Java, înregistrează numai evenimentele care sunt la sau peste nivelul INFO, puteți utiliza setLevel () metoda discutată mai sus.

Acum, că am discutat despre cum să folosesc Logger în Java, să discutăm următoarea componentă a arhitecturii Log4j, adică Anexe.

Appender sau Handlers

Appender sau Handlers sunt responsabili pentru înregistrarea evenimentelor din jurnal la o destinație. Fiecare logger are acces la mai multe handler-uri și primește mesajul jurnal de la logger. Apoi, Anexele folosesc Formatters sau Layouts pentru a formata evenimentele și a le trimite la destinația corespunzătoare.

Un Appender poate fi oprit folosind metoda setLevel (Level.OFF). Cei mai importanți doi manipulatori dinjava.util.loggingpachetele sunt după cum urmează:

  • FileHandler: Scrieți mesajul jurnal în fișier
  • ConsoleHandler: Scrie mesajul jurnal pe consolă

Căci, pentru o mai bună înțelegere, am explicat câțiva anexe în secțiunea proprietăți.

Aspect sau formatare

Aspectul formatatorilor este utilizat pentru formatarea și conversia datelor într-un eveniment jurnal.Cadrele de jurnalizare oferă planuri pentru HTML, XML, Syslog, JSON, text simplu și alte jurnale.

  1. SimpleFormatter : Generează mesaje text cu informații de bază.
  2. XMLFormatter : Generează un mesaj XML pentru jurnal

Pentru că, pentru o mai bună înțelegere, am explicat câteva aspecte în secțiunea de proprietăți.Cu aceasta, ajungem la sfârșitul acestui blog pe „Logger în Java”. Sper că voi sunteți clari cu ceea ce v-a fost învățat în acest articol.

Verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul de formare și certificare Java J2EE și SOA al Edureka este conceput pentru studenți și profesioniști care doresc să fie dezvoltator Java. Cursul este conceput pentru a vă oferi un început important în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog „Logger în Java” și vă vom contacta cât mai curând posibil.