Què és el logger a Java i per què el feu servir?



Aquest article sobre Logger a Java és una guia completa sobre l'API de registre de Java que s'utilitza per registrar solucions mentre es creen projectes.

El registre és una característica important que els desenvolupadors han de tenir en compte per rastrejar els errors. , en ser un dels llenguatges de programació més populars, inclou un enfocament personalitzable per al registre proporcionant una API bàsica de registre. Per tant, en aquest article sobre Logger a Java, parlaré de com pot utilitzar aquesta característica per habilitar el registre extensible a Java.

En aquest article es tractaran els temes següents:





    1. Necessitat de registre
    2. Components de registre
    3. Què és Logger?
    4. Appender o Handlers
    5. Disseny o formats

Abans, ens endinsem profundament en iniciar sessió a Java, entenem la necessitat de registrar-lo.

exemple de combinació de tipus c ++

Necessitat de registre

En crear aplicacions, sovint ens enfrontem a errors que s’han de depurar. Per tant, amb l’ajuda de registres, podem obtenir fàcilment informació sobre el que passa a l’aplicació amb un registre d’errors i circumstàncies inusuals. Ara us pot semblar que, per què no utilitzeu la declaració System.out.print () a . Bé, el problema d’aquestes afirmacions és que els missatges de registre només s’imprimiran a la consola. Per tant, un cop tanqueu la consola, es perdran automàticament tots els registres. Per tant, els registres no s’emmagatzemaran permanentment i es mostraran un per un, ja que es tracta d’un entorn de fil únic.



Per evitar aquests problemes, el registre a Java es simplifica amb l 'ajuda deAPI proporcionada mitjançantjava.util.loggingpaquet i el fitxerorg.apache.log4j. *paquet.

Components de registre

Els components de registre de Java ajuden el desenvolupador a crear registres, passar-los a la destinació respectiva i mantenir un format adequat. Els següents són els tres components:

  • Llenyataires - Responsable de la captura de registres de registre i de la seva transmissió a l'Appender corresponent.
  • Annexors o manipuladors - Són els responsables de gravar els esdeveniments de registre a una destinació. Els annexors donen format als esdeveniments amb l'ajuda de dissenys, abans d'enviar sortides.
  • Dissenys o formats - Responsable de determinar l'aspecte de les dades quan apareixen a l'entrada de registre.

Podeu consultar la imatge següent per al funcionament dels tres components:



Components de registre - Logger a Java - Edureka

Quan una aplicació fa una trucada de registre, el component Logger registra l'esdeveniment en un LogRecord i el reenvia a l'aplicador corresponent. A continuació, va formar el registre mitjançant el disseny segons el format requerit. A part d'això, també podeu utilitzar més d'un filtre per especificar quins annexors s'han d'utilitzar per als esdeveniments.

Ara, entenem què és un registrador a Java en profunditat.

Què és Logger a Java?

Els registradors a Java són objectes que activen esdeveniments de registre. Es creen i es criden al codi de l'aplicació, on generen esdeveniments de registre abans de passar-los al següent component que és un Appender. Podeu utilitzar diversos registradors en una mateixa classe per respondre a diversos esdeveniments o utilitzar els registradors en una jerarquia. Normalment s’anomenen mitjançant l’espai de noms jeràrquic separat per punts. A més, tots els noms del registrador han de basar-se en la classe o el nom del paquet del component registrat.

A part d'això, cada registrador guarda un seguiment de l'ancestre existent més proper al Registres espai de noms i també té un 'Nivell' associat. Bé, parlaré dels loggers a la darrera part d’aquest article, però abans, deixeu-me mostrar-vos com crear un logger a Java.

Crea un nou registrador

El procés de creació d’un nou logger a Java és bastant senzill. Cal fer servirLogger.getLogger ()mètode. ElgetLogger () identifica el nom del registrador i pren la cadena com a paràmetre. Per tant, si existeix un registrador prèviament, es torna aquest registre, en cas contrari es crea un nou registrador.

Sintaxi:

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

Aquí, SampleClass és el nom de classe per al qual obtenim l'objecte Logger.

com acabar un programa java

Exemple:

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

Ara que us he explicat com crear un logger a Java, vegem els diferents nivells disponibles al registre.

Nivells de registre

Els nivells de registre s'utilitzen per classificar els registres per la seva gravetat o l'impacte en l'estabilitat de l'aplicació. Elorg.apache.log4j. *paquet i el fitxerjava.util.loggingtots dos proporcionen diferents nivells de registre. Fem una ullada a cadascun d'ells un per un.

org.apache.log4j. *package proporciona els nivells següents en ordre descendent:

  • FATAL
  • ERROR
  • ADVERTÈNCIA
  • INFO
  • DEBUG

java.util.loggingpackage proporciona els nivells següents en ordre descendent:

  • SEVER (NIVELL MÉS ALT)
  • AVÍS
  • INFO
  • CONFIG
  • FINA
  • MILLOR
  • MILLOR (NIVELL MÉS BAIX)

A part d'això, el paquet anterior també proporciona dos nivells addicionalsTOTSiDESACTIVATs'utilitza per registrar tots els missatges i desactivar el registre respectivament.

Exemple d 'inici de sessió a Java mitjançantorg.apache.log4j. *paquet:

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

Així que si el vostre resultat ésroot logger com a nivell WARN al nostre log4j.properties , llavors tots els missatges d’error amb una prioritat superior a WARN s’imprimiran de la manera següent:

També podeu establir el nivell mitjançant el mètode setLevel () des dejava.util.loggingpaquet com es mostra a continuació:

logger.setLevel (Level.WARNING)

Exemple d 'inici de sessió a Java mitjançantjava.util.loggingpaquet:

paquet 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) públic 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, 'Hola! Benvingut d'Edureka')}}

Per habilitar l'inici de sessió a l'aplicació mitjançant el fitxerorg.apache.log4j. *paquet o eljava.util.loggingpackage, heu de configurar el fitxer de propietats. A continuació, en aquest article sobre Logger a Java, analitzem el fitxer de propietats de tots dos.

Fitxer de propietats del paquet Util Log4j i Java

Fitxer de propietats de mostra Log4j:

# Enable Root logger option log4j.rootLogger = INFO, file, stdout # Adjunta appenders a imprimir el fitxer 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 {aaaa-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Adjunta appenders per imprimir a la 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
  • El fitxer de propietats Log4j es crea a la carpeta src del projecte.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Imprimeix tots els registres d'un fitxer
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Imprimeix tots els registres de la consola
  • log4j.appender.file.File = D: loglogging.log -> Especifica la ubicació del fitxer de registre
  • log4j.appender.file.MaxFileSize = 10 MB -> Mida màxima del fitxer de registre a 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Limita el nombre de fitxers de còpia de seguretat a 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Especifica el patró en què els registres s’imprimiran al fitxer de registre.
  • log4j.appender.file.layout.ConversionPattern =% d {aaaa-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Estableix el patró de conversió per defecte.

Mostra Fitxer de propietats del paquet Java Util

handlers = java.util.logging.ConsoleHandler .level = AVÍS # La sortida s'emmagatzemarà al directori per defecte 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 # El nivell de registres es limitarà a AVÍS i més. java.util.logging.ConsoleHandler.level = ADVERTENCIA java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Aquí,

declarant una matriu d'objectes a Java
  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Els fitxers de registre s'escriurien aC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->La quantitat màxima que el registrador escriu a qualsevol fitxer en bytes.
  • java.util.logging.FileHandler.count = 1 -> Especifica el nombre de fitxers de sortida
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Esmenta el formatador utilitzat per al format. Aquí s'utilitza el formatador XML.
  • java.util.logging.ConsoleHandler.level = ADVERTÈNCIA -> Estableix el nivell de registre predeterminat en ADVERTÈNCIA
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->Especifica el fitxerFormatadorper ser utilitzat per tothomConsoleHandler‘S. Aquí s’utilitza SimpleFormatter.

Registre d'esdeveniments

Per iniciar sessió als esdeveniments , heu d'assegurar-vos que assigneu un nivell per eliminar fàcilment els esdeveniments. Per assignar un nivell i esmentar un missatge, podeu utilitzar els mètodes següents:

Mètode 1:

logger.log (Level.INFO, 'Mostra el missatge')
Aquí, el nivell és INFO i el missatge que s’imprimirà és “Mostra el missatge”.

Mètode 2:

logger.info ('Mostra el missatge')

Per assegurar-vos que Logger a Java només registra esdeveniments que estiguin o superin el nivell INFO, podeu utilitzar el fitxer setLevel () mètode comentat anteriorment.

Ara, ja que he comentat com utilitzar Logger a Java, parlem del següent component de l'arquitectura Log4j, és a dir, dels annexors.

Appender o Handlers

Appender o Handlers són els responsables de gravar els esdeveniments del registre a una destinació. Cada registrador té accés a diversos gestors i rep el missatge de registre del registrador. A continuació, els annexors utilitzen formats o dissenys per formatar els esdeveniments i enviar-los a la destinació corresponent.

Es pot desactivar un Appender mitjançant el mètode setLevel (Level.OFF). Els dos controladors més estàndard dejava.util.loggingpaquet són els següents:

  • FileHandler: Escriviu el missatge de registre al fitxer
  • ConsoleHandler: Escriu el missatge de registre a la consola

Perquè, millor entès, he explicat alguns annexos a la secció de propietats.

Disseny o formats

El disseny dels formatadors s’utilitza per formatar i convertir dades en un esdeveniment de registre.Els marcs de registre proporcionen dissenys per a HTML, XML, Syslog, JSON, text pla i altres registres.

  1. SimpleFormatter : Genera missatges de text amb informació bàsica.
  2. XMLFormatter : Genera un missatge XML per al registre

Perquè, millor entès, he explicat alguns dissenys a la secció de propietats.Amb això, arribem al final d’aquest bloc sobre “Logger in Java”. Espero que tingueu clar el que us ha ensenyat en aquest article.

Consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate i Spring

Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d’aquest bloc “Logger in Java” i us respondrem el més aviat possible.