Hva er logger i Java, og hvorfor bruker du det?



Denne artikkelen om Logger i Java er en omfattende guide om Java logging API som brukes til loggløsninger mens du oppretter prosjekter.

Logging er en viktig funksjon som utviklerne må vurdere for å spore feilene. , som er et av de mest populære programmeringsspråkene, kommer med en tilpassbar tilnærming til logging ved å tilby et grunnleggende logg-API. Så, i denne artikkelen om Logger i Java, skal jeg diskutere hvordan kan bruke denne funksjonen for å aktivere utvidbar logging i Java.

Følgende emner vil bli dekket i denne artikkelen:





    1. Behov for logging
    2. Logging Components
    3. Hva er Logger?
    4. Appender eller Handlers
    5. Layout eller formaterere

Før dykker vi dypt inn i logging i java, la oss forstå behovet for logging.

Behov for logging

Mens vi bygger applikasjoner, møter vi ofte feil som må feilsøkes. Så ved hjelp av logger kan vi enkelt få informasjon om hva som skjer i applikasjonen med en oversikt over feil og uvanlige omstendigheter. Nå kan det slå deg an at hvorfor ikke bruke uttalelsen System.out.print () i . Problemet med disse uttalelsene er at loggmeldinger bare skrives ut på konsollen. Så når du lukker konsollen automatisk, vil alle loggene gå tapt. Derfor blir ikke logger lagret permanent, og vises en etter en, ettersom det er et enkelt trådmiljø.



For å unngå slike problemer, er logging i Java forenklet ved hjelp avAPI levert gjennomjava.util.loggingpakken, ogorg.apache.log4j. *pakke.

Logging Components

Java-loggkomponentene hjelper utvikleren med å opprette logger, føre loggene til den respektive destinasjonen og opprettholde et riktig format. Følgende er de tre komponentene:

hvordan du gjør dobbelt til int java
  • Loggere - Ansvarlig for å fange loggposter og overføre dem til tilsvarende Appender.
  • Appenders eller Handlers - De er ansvarlige for å registrere logghendelser til en destinasjon. Appenders formaterer hendelser ved hjelp av Layouts, før de sender utganger.
  • Oppsett eller formater - Ansvarlig for å bestemme hvordan data ser ut når de vises i loggoppføringen.

Du kan se på bildet nedenfor for hvordan alle tre komponentene fungerer:



Logging Components - Logger in Java - Edureka

Når et program foretar et loggingsamtale, registrerer Logger-komponenten hendelsen i et LogRecord og videresender den til riktig Appender. Deretter dannet den posten ved hjelp av Layout i henhold til ønsket format. Bortsett fra dette, kan du også bruke mer enn ett filter for å spesifisere hvilke Appenders som skal brukes til arrangementer.

La oss nå forstå hva som er en logger i Java i dybden.

Hva er Logger i Java?

Loggere i Java er objekter som utløser logghendelser. De opprettes og kalles i koden til applikasjonen, der de genererer logghendelser før de sendes til neste komponent som er en Appender. Du kan bruke flere loggere i en klasse for å svare på forskjellige hendelser eller bruke Loggers i et hierarki. De blir normalt navngitt ved hjelp av det hierarkiske punkt-atskilte navneområdet. Dessuten må alle loggernavnene være basert på klassen eller pakkenavnet til den loggede komponenten.

Bortsett fra dette, holder hver logger oversikt over nærmeste eksisterende forfader i Tømmerstokker navneområdet og har også et 'Nivå' tilknyttet. Vel, jeg vil diskutere loggerne i siste del av denne artikkelen, men før det, la meg vise deg hvordan du lager en logger i Java.

Opprett ny logger

Prosessen med å lage en ny Logger i Java er ganske enkel. Du må brukeLogger.getLogger ()metode. DegetLogger () identifiserer navnet på loggeren og tar streng som parameter. Så hvis en logger allerede eksisterer, blir den loggeren returnert, ellers opprettes en ny logger.

Syntaks:

statisk loggerlogger = Logger.getLogger (SampleClass.class.getName ())

Her er SampleClass klassenavnet som vi får Logger-objektet for.

Eksempel:

offentlig klasse kunde {privat statisk slutt Logger LOGGER = Logger.getLogger (Customer.class) offentlig ugyldig getCustomerDetails () {}}

Nå som jeg har fortalt deg hvordan du lager en logger i Java, la oss se de forskjellige nivåene som er tilgjengelige i loggføring.

Loggnivåer

Loggnivåer brukes til å kategorisere loggene etter alvorlighetsgrad eller innvirkning på applikasjonens stabilitet. Deorg.apache.log4j. *pakken ogjava.util.loggingbegge gir forskjellige nivåer av logging. La oss ta en titt på hver av dem en etter en.

org.apache.log4j. *pakken gir følgende nivåer i synkende rekkefølge:

  • FATAL
  • FEIL
  • VARSLE
  • INFO
  • DEBUG

java.util.loggingpakken gir følgende nivåer i synkende rekkefølge:

  • SVERE (HØYESTE NIVÅ)
  • ADVARSEL
  • INFO
  • KONFIG
  • FINT
  • FINER
  • FINEST (LAVESTE NIVÅ)

Bortsett fra dette, gir pakken ovenfor også to ekstra nivåerALLEogAVbrukes til å logge alle meldinger og deaktivere henholdsvis logging.

Eksempel på logging i Java ved hjelp avorg.apache.log4j. *pakke:

importer 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 ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Final Output')}}

Så hvis produksjonen din erroot logger som WARN-nivå i vår log4j.egenskaper filen, vil alle feilmeldingene med høyere prioritet enn WARN skrives ut som nedenfor:

Du kan også angi nivået ved å bruke metoden setLevel () frajava.util.loggingpakke som nedenfor:

logger.setLevel (nivå.ADVARSEL)

Eksempel på logging i Java ved hjelp avjava.util.loggingpakke:

pakke 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 Customer {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Loggerlogg = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Nivå.ADVARSEL, 'Hei! Velkommen fra Edureka')}}

For å aktivere pålogging i applikasjonen ved hjelp avorg.apache.log4j. *pakken ellerjava.util.loggingpakken, må du konfigurere egenskapsfilen. Neste i denne artikkelen om Logger i Java, la oss diskutere eiendomsfilen til dem begge.

Egenskapsfil for Log4j og Java Util-pakke

Eksempel på Egenskapsfil Log4j:

# Enable Root logger option log4j.rootLogger = INFO, file, stdout # Fest appenders for å skrive ut filen 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 {åååå-MM-dd HH: mm : ss}% -5p% c {1}:% L -% m% n # Fest appenders for å skrive ut på konsollen 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 {åååå-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Log4j-egenskapsfilen opprettes i src-mappen til prosjektet.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Skriver ut alle logger i en fil
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Skriver ut alle logger i konsollen
  • log4j.appender.file.File = D: loglogging.log -> Spesifiserer plassering av loggfilen
  • log4j.appender.file.MaxFileSize = 10 MB -> Maksimal størrelse på loggfilen til 10 MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Begrenser antall sikkerhetskopifiler til 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Spesifiserer mønsteret der loggene skal skrives ut til loggfilen.
  • log4j.appender.file.layout.ConversionPattern =% d {åååå-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Angir standard konverteringsmønster.

Prøve Java Util Package Properties File

handlers = java.util.logging.ConsoleHandler .level = ADVARSEL # Utdata lagres i standardkatalogen 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 # Loggnivå vil være begrenset til ADVARSEL og over. java.util.logging.ConsoleHandler.level = ADVARSEL java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Her,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> Loggfiler vil bli skrevet tilC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Maksimumsbeløpet som loggeren skriver til en fil i byte.
  • java.util.logging.FileHandler.count = 1 -> Spesifiserer antall utdatafiler
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Nevner formateringen som brukes til formatering. Her brukes XML Formatter.
  • java.util.logging.ConsoleHandler.level = ADVARSEL -> Angir standard loggnivå til ADVARSEL
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->SpesifisererFormatererskal brukes av alleConsoleHandler‘S. Her brukes SimpleFormatter.

Loggingshendelser

For å logge inn hendelser , må du sørge for at du tilordner et nivå for enkelt å arkivere hendelsene. For å tilordne et nivå og nevne en melding kan du bruke metodene nedenfor:

Metode 1:

logger.log (Level.INFO, “Vis melding”)
Her er nivå INFO og meldingen som skal skrives ut er 'Vis melding'.

Metode 2:

logger.info (“Vis melding”)

For å sikre at Logger i Java, bare logger hendelser som er på eller over INFO-nivået, kan du bruke setLevel () metode diskutert ovenfor.

Nå som jeg har diskutert hvordan du bruker Logger i Java, la oss diskutere den neste komponenten i Log4j-arkitekturen, dvs. Appenders.

Appender eller Handlers

Appender eller Handlers er ansvarlige for å registrere logghendelser til en destinasjon. Hver logger har tilgang til flere håndterere og mottar loggmeldingen fra loggeren. Deretter bruker Appenders Formatører eller Layouts for å formatere hendelsene og sende dem til den aktuelle destinasjonen.

En appender kan slås av ved å bruke metoden setLevel (Level.OFF). De to mest vanlige håndtererne ijava.util.loggingpakken er som følger:

  • FileHandler: Skriv loggmeldingen som skal arkiveres
  • ConsoleHandler: Skriver loggmeldingen til konsollen

For din bedre forståelse har jeg forklart noen Appenders i eiendomsdelen.

Layout eller formaterere

Layouten til Formatters brukes til å formatere og konvertere data i en logghendelse.Loggingsrammer gir oppsett for HTML, XML, Syslog, JSON, ren tekst og andre logger.

  1. Enkel formatering : Genererer tekstmeldinger med grunnleggende informasjon.
  2. XMLFormatter : Genererer XML-melding for loggen

For din bedre forståelse har jeg forklart noen få oppsett i eiendomsdelen.Med dette kommer vi til slutten av denne bloggen om “Logger i Java”. Jeg håper dere er klare med det som er blitt lært til dere i denne artikkelen.

forskjellig mellom hashmap og hashtable

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet til denne 'Logger i Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.