Mikä on Java-tiedonkerääjä ja miksi käytät sitä?



Tämä artikkeli Logger in Java -sovelluksesta on kattava opas Java-kirjausliittymästä, jota käytetään ratkaisujen kirjaamiseen projektien luomisen yhteydessä.

Kirjaaminen on tärkeä ominaisuus, jonka kehittäjien on otettava huomioon virheiden jäljittämiseksi. , joka on yksi suosituimmista ohjelmointikielistä, sisältää mukautettavan lähestymistavan kirjaamiseen tarjoamalla peruskirjausliittymän. Joten tässä Javan Logger-artikkelissa aion keskustella miten voi käyttää tätä ominaisuutta ottaakseen käyttöön laajennetun kirjaamisen Java-sovelluksessa.

Tässä artikkelissa käsitellään seuraavia aiheita:





    1. Hakkuiden tarve
    2. Kirjaa komponentit
    3. Mikä on Logger?
    4. Appender tai käsittelijät
    5. Asettelu tai muotoilijat

Aikaisemmin sukellamme syvällisesti puunkorjuuseen java, ymmärrämme puunkorjuun tarpeen.

Hakkuiden tarve

Rakennettaessa sovelluksia kohtaamme usein virheitä, jotka on korjattava. Joten lokien avulla voimme helposti saada tietoa sovelluksessa tapahtuvista asioista kirjaamalla virheitä ja epätavallisia olosuhteita. Nyt se saattaa mieleesi tulla, että miksi et käytä System.out.print () -lausetta . No, näiden lausuntojen ongelma on, että lokiviestit tulostetaan vain konsolille. Joten, kun suljet konsolin automaattisesti, kaikki lokit menetetään. Siksi lokeja ei tallenneta pysyvästi, ja ne näytetään yksi kerrallaan, koska kyseessä on yksisäikeinen ympäristö.



Tällaisten ongelmien välttämiseksi Java-kirjaamista yksinkertaistetaanSovellusliittymä tarjotaanjava.util.loggingpaketti jaorg.apache.log4j. *paketti.

cassandra-sarakeperhe vs taulukko

Kirjaa komponentit

Java-kirjauskomponentit auttavat kehittäjää luomaan lokeja, välittämään lokit kyseiseen kohteeseen ja ylläpitämään oikeaa muotoa. Seuraavat kolme komponenttia:

  • Kirjaimet - Vastuussa lokitietueiden sieppaamisesta ja välittämisestä vastaavalle hakijalle.
  • Hakijat tai käsittelijät - He ovat vastuussa lokitapahtumien tallentamisesta määränpäähän. Liitteet muotoilevat tapahtumat Layoutsin avulla ennen lähtöjen lähettämistä.
  • Asettelut tai muotoilijat - Vastuussa siitä, miten tiedot näyttävät, kun ne näkyvät lokimerkinnässä.

Voit katsoa alla olevaa kuvaa kaikkien kolmen komponentin toiminnasta:



Logging Components - Logger in Java - Edureka

Kun sovellus soittaa lokikutsun, Lokitiedostokomponentti tallentaa tapahtuman LogRecordiin ja välittää sen edelleen asianomaiselle Appenderille. Sitten se muotoili tietueen käyttämällä Asettelua vaaditun muodon mukaisesti. Tämän lisäksi voit myös käyttää useampaa kuin yhtä suodatinta määrittääksesi, mitä liitteitä käytetään tapahtumiin.

Ymmärretään nyt, mikä on Java-kirjaaja perusteellisesti.

Mikä on Logger Java-sovelluksessa?

Java-kirjaimet ovat objekteja, jotka käynnistävät lokitapahtumat. Ne luodaan ja kutsutaan sovelluksen koodissa, jossa ne luovat lokitapahtumat ennen niiden siirtämistä seuraavalle komponentille, joka on Appender. Voit käyttää useita loggereita yhdessä luokassa vastaamaan erilaisiin tapahtumiin tai käyttää loggereita hierarkiassa. Ne nimetään yleensä hierarkkisella pisteillä erotetulla nimiavaruudella. Kaikkien Logger-nimien on perustuttava lokitetun komponentin luokkaan tai paketin nimeen.

Tämän lisäksi kukin kirjaaja pitää kirjaa lähimmästä olemassa olevasta esi-isästä Lokit nimitilaan ja siihen on myös liitetty ”Taso”. No, keskustelen Loggerista tämän artikkelin jälkimmäisessä osassa, mutta ennen sitä haluan näyttää sinulle, kuinka luoda Logger Java-käyttöjärjestelmässä.

Luo uusi kirjaaja

Uuden Loggerin luominen Java-järjestelmään on melko yksinkertainen. Sinun täytyy käyttääLogger.getLogger ()menetelmä.getLogger () tunnistaa kirjaajan nimen ja ottaa merkkijonon parametrina. Joten jos Logger on olemassa jo silloin, se Logger palautetaan, muuten uusi Logger luodaan.

Syntaksi:

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

Tässä SampleClass on luokan nimi, jolle saamme Logger-objektin.

Esimerkki:

julkisen luokan asiakas {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Nyt kun olen kertonut sinulle, kuinka luoda Logger Java-sovellukseen, katsotaanpa kirjaamisen eri tasot.

Lokitasot

Lokitasoja käytetään luokittelemaan lokit niiden vakavuuden tai vaikutuksen perusteella sovelluksen vakauteen.org.apache.log4j. *paketti jajava.util.loggingmolemmat tarjoavat erilaisia ​​hakkuutasoja. Katsokaamme kutakin niistä yksi kerrallaan.

org.apache.log4j. *Paketti tarjoaa seuraavat tasot laskevassa järjestyksessä:

  • FATAL
  • VIRHE
  • VAROITTAA
  • TIEDOT
  • VIRHEET

java.util.loggingPaketti tarjoaa seuraavat tasot laskevassa järjestyksessä:

  • RASKAA (KORKEA TASO)
  • VAROITUS
  • TIEDOT
  • MÄÄRITÄ
  • HIENO
  • FINER
  • PARAS (alin taso)

Tämän lisäksi yllä oleva paketti tarjoaa myös kaksi ylimääräistä tasoaKAIKKIjaVINOSSAkäytetään kaikkien viestien kirjaamiseen ja kirjaamisen poistamiseen käytöstä.

Esimerkki Java-kirjautumisestaorg.apache.log4j. *paketti:

tuo org.apache.log4j.Logger public class Asiakas {static Logger logger = Logger.getLogger (Customer.class) julkinen staattinen void main (String [] args) {logger.error ('ERROR') logger.warn ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('Lopullinen tulos')}}

Joten jos tuotoksesi onroot-kirjaaja WARN-tasona meidän log4j. ominaisuudet tiedosto, kaikki virheilmoitukset, joiden prioriteetti on WARN, tulostetaan seuraavasti:

Voit myös asettaa tason käyttämällä setLevel () -menetelmääjava.util.loggingpakkaus kuten alla:

logger.setLevel (taso.VAROITUS)

Esimerkki Java-kirjautumisestajava.util.loggingpaketti:

paketti edureka tuonti java.io.IOException tuonti java.util.logging.Level tuonti java.util.logging.Logger tuonti java.util.logging. * luokka EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) julkinen void sampleLog () {LOGGER.log (Level.VAROITUS, 'Tervetuloa Edurekaan!')}} julkisen luokan asiakas {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.VAROITUS, 'Hei! Tervetuloa Edurekasta')}}

Kirjautumisen ottaminen käyttöön sovelluksessasiorg.apache.log4j. *paketti taijava.util.loggingpaketti, sinun on määritettävä ominaisuudet-tiedosto. Seuraavaksi tässä artikkelissa Logger in Java, keskustellaan molempien ominaisuustiedostosta.

Log4j: n ja Java Util -paketin Ominaisuudet-tiedosto

Esimerkki Log4j-ominaisuustiedostosta:

# Ota juurihakijavaihtoehto käyttöön log4j.rootLogger = INFO, tiedosto, vakio # Liitä liitteet tulostamaan tiedosto log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10 Mt 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 # Liitä liitännät tulostamaan konsolille 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 {vvvv-kk-pp KK: mm: ss}% -5p% c {1}:% L -% m% n
  • Log4j-ominaisuustiedosto luodaan projektin src-kansioon.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> Tulostaa kaikki tiedoston lokit
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> Tulostaa kaikki konsolin lokit
  • log4j.appender.file.File = D: loglogging.log -> Määrittää lokitiedoston sijainnin
  • log4j.appender.file.MaxFileSize = 10 Mt -> Lokitiedoston enimmäiskoko 10 Mt
  • log4j.appender.file.MaxBackupIndex = 5 -> Rajoittaa varmuuskopiotiedostojen määrän viiteen
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> Määrittää mallin, jolla lokit tulostetaan lokitiedostoon.
  • log4j.appender.file.layout.ConversionPattern =% d {vvvv-kk-pp HH: mm: ss}% -5p% c {1}:% L -% m% n -> Asettaa oletusmuunnoskuvion.

Näyte Java Util -paketin ominaisuustiedosto

handlers = java.util.logging.ConsoleHandler .level = VAROITUS # Tulos tallennetaan oletushakemistoon 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 # Lokien taso rajoitetaan VAROITukseen ja sitä korkeammalle. java.util.logging.ConsoleHandler.level = VAROITUS java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Tässä,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> lokitiedostot kirjoitettaisiinC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Suurin summa, jonka kirjaaja kirjoittaa mihin tahansa tiedostoon tavuina.
  • java.util.logging.FileHandler.count = 1 -> Määrittää tulostetiedostojen määrän
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> Mainitsee muotoilussa käytetyn muotoilijan. Tässä käytetään XML-muotoilijaa.
  • java.util.logging.ConsoleHandler.level = VAROITUS -> Asettaa oletuslokitasoksi VAROITUS
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->MäärittääMuotoilijakaikkien käytettäväksiKonsoliKäsittelijä'S. Tässä käytetään SimpleFormatteria.

Tapahtumien kirjaaminen

Tapahtumien kirjaaminen sisään , sinun on varmistettava, että määrität tason tapahtumien helposti arkistoimiseksi. Voit määrittää tason ja mainita viestin käyttämällä seuraavia menetelmiä:

Menetelmä 1:

logger.log (Level.INFO, “Näytä viesti”)
Tässä taso on INFO ja tulostettava viesti on 'Näytä viesti'.

Menetelmä 2:

logger.info (“Näytä viesti”)

Voit varmistaa, että Logger Java-sovelluksessa kirjaa vain INFO-tasolla olevat tai sitä korkeammat tapahtumat, voit käyttää setLevel () edellä käsitelty menetelmä.

Nyt kun olen keskustellut Loggerin käytöstä Java-sovelluksessa, keskustelkaamme Log4j-arkkitehtuurin seuraavasta komponentista, ts. Appenders.

Appender tai käsittelijät

Appender tai Handlers ovat vastuussa lokitapahtumien tallentamisesta määränpäähän. Jokaisella kirjaajalla on pääsy useisiin käsittelijöihin, ja se vastaanottaa lokiviestin loggerista. Sitten Liitteet käyttävät Muotoilijoita tai Asetteluja muotoilemaan tapahtumat ja lähettämään ne vastaavaan määränpäähän.

Appender voidaan kytkeä pois päältä setLevel (Level.OFF) -menetelmällä. Kaksi tavallisinta käsittelijääjava.util.loggingpaketit ovat seuraavat:

  • FileHandler: Kirjoita lokiviesti tiedostoon
  • ConsoleHandler: Kirjoittaa lokiviestin konsolille

Sillä, ymmärryksenne paremmin, olen selittänyt muutamia Liitteitä ominaisuusosiossa.

Asettelu tai muotoilijat

Muotoilijoiden asettelua käytetään lokitapahtuman tietojen muotoiluun ja muuntamiseen.Lokikehykset tarjoavat ulkoasuja HTML-, XML-, Syslog-, JSON-, pelkkää tekstiä ja muita lokeja varten.

python __init__ menetelmä
  1. SimpleFormatter : Luo perustietoja sisältäviä tekstiviestejä.
  2. XML-muoto : Luo lokille XML-sanoman

Jotta ymmärrät paremmin, olen selittänyt muutaman asettelun ominaisuusosiossa.Tämän myötä olemme päässeet tämän blogin loppuun 'Logger in Java'. Toivon, että olette selvillä siitä, mitä teille on opetettu tässä artikkelissa.

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän 'Logger in Java' -blogin kommenttiosassa, niin otamme sinuun yhteyttä mahdollisimman pian.