Mis on Java logija ja miks te seda kasutate?



See Java logija artikkel on põhjalik juhend Java logimise API kohta, mida kasutatakse projektide loomisel lahenduste logimiseks.

Logimine on oluline funktsioon, mida arendajad peavad vigade tuvastamiseks arvestama. , mis on üks populaarsemaid programmeerimiskeeli, on kohandatud lähenemisviis logimisse, pakkudes logimise põhi-API-d. Niisiis, selles Java-s logijate artiklis arutlen kuidas saab seda funktsiooni kasutada laiendatava logimise lubamiseks Java-s.

Selles artiklis käsitletakse järgmisi teemasid:





    1. Raievajadus
    2. Komponentide logimine
    3. Mis on logija?
    4. Appender või käitlejad
    5. Paigutus või vormindajad

Enne sukeldume java sisse logimisse, mõistame metsaraie vajalikkust.

Raievajadus

Rakenduste loomisel puutume sageli kokku vigadega, mis tuleb siluda. Niisiis saame logide abil hõlpsasti teavet rakenduses toimuva kohta koos vigade ja ebatavaliste asjaoludega. Nüüd võib see teile meelde tulla, miks mitte kasutada selles avaldust System.out.print () . Noh, nende lausetega on probleem see, et logisõnumeid trükitakse ainult konsoolile. Nii et pärast konsooli sulgemist kaovad kõik logid automaatselt. Seetõttu ei salvestata logisid jäädavalt ja neid kuvatakse ükshaaval, kuna see on ühe lõimega keskkond.



Selliste probleemide vältimiseks on Java abil sisselogimine lihtsustatudAPI pakutaksejava.util.loggingpakend jaorg.apache.log4j. *pakend.

Komponentide logimine

Java logimise komponendid aitavad arendajal logisid luua, edastada logid vastavasse sihtkohta ja säilitada õige vorming. Kolm komponenti on järgmised:

  • Raietöölised - vastutab logikirjete hõivamise ja edastamise eest vastavale lisakirjutajale.
  • Lisandid või käitlejad - Nad vastutavad logisündmuste registreerimise eest sihtkohta. Enne väljundite saatmist vormindavad lisandid sündmused paigutuste abil.
  • Paigutused või vormindajad - Vastutab selle eest, kuidas andmed logilises kirjes ilmuvad.

Kõigi kolme komponendi töö kohta saate viidata allolevale pildile:



Logimiskomponendid - logija Java-s - Edureka

Kui rakendus teeb logimiskõne, salvestab Logger komponent sündmuse LogRecordi ja edastab selle sobivale lisapakkujale. Seejärel vormistas see kirje, kasutades Layout vastavalt vajalikule vormingule. Peale selle saate kasutada mitut filtrit, et määrata, milliseid liidreid ürituste jaoks kasutada.

Nüüd mõistame, mis on Java logija põhjalikult.

Mis on Java logija?

Java logijad on objektid, mis käivitavad logi sündmused. Need luuakse ja neid kutsutakse rakenduse koodis, kus nad genereerivad logi sündmused enne nende edastamist järgmisele komponendile, mis on Appender. Erinevatele sündmustele reageerimiseks võite kasutada mitu logerit ühes klassis või kasutada logereid hierarhias. Tavaliselt nimetatakse neid hierarhiliste punktidega eraldatud nimeruumide abil. Samuti peavad kõik logija nimed põhinema logitud komponendi klassil või paketi nimel.

Peale selle peab iga logija arvestust lähima olemasoleva esivanema kohta Logid nimeruumis ja sellega on seotud ka “Tase”. Noh, ma arutan selle artikli teises osas logijaid, kuid enne seda lubage mul näidata, kuidas Java-s logerit luua.

Looge uus logija

Java-s uue logija loomise protsess on üsna lihtne. Sa pead kasutamaLogger.getLogger ()meetod. ThegetLogger () tuvastab logija nime ja võtab parameetriks stringi. Seega, kui logija on juba olemas, tagastatakse see logija, muidu luuakse uus logija.

Süntaks:

staatiline logija logija = Logger.getLogger (SampleClass.class.getName ())

Siin on SampleClass klassi nimi, mille jaoks me hankime objekti Logger.

Näide:

avaliku klassi klient {private static final Logger LOGGER = Logger.getLogger (Customer.class) public void getCustomerDetails () {}}

Nüüd, kui olen teile öelnud, kuidas Java-s logija luua, vaadake logimisel erinevaid tasemeid.

Logi tasemed

Logitasemeid kasutatakse palkide kategoriseerimiseks nende tõsiduse või mõju rakenduse stabiilsusele. Theorg.apache.log4j. *pakend jajava.util.loggingmõlemad pakuvad erineval tasemel raiet. Heidame pilgu neile ükshaaval.

org.apache.log4j. *pakett pakub järgmisi tasemeid kahanevas järjekorras:

  • TAPPEV
  • VIGA
  • HOIATUS
  • INFO
  • VEOLUD

java.util.loggingpakett pakub järgmisi tasemeid kahanevas järjekorras:

  • RASKE (KÕRGEM TASE)
  • HOIATUS
  • INFO
  • KONFIGREERI
  • Peen
  • Peenem
  • PARIM (MADALIM TASE)

Peale selle pakub ülaltoodud pakett ka kahte täiendavat tasetKÕIKjaVÄLJASkasutatakse kõigi sõnumite logimiseks ja logimise keelamiseks.

Näide Java-sse logimisest, kasutadesorg.apache.log4j. *pakend:

importige org.apache.log4j.Logger avalik klass Klient {static Logger logger = Logger.getLogger (Customer.class) avalik staatiline void main (String [] args) {logger.error ('ERROR') logger.warn ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('lõplik väljund')}}

Nii et kui teie väljund onjuur logija WARN-tasemel meie log4j.omadused faili, siis kõik veateated, millel on suurem prioriteet kui WARN, prinditakse järgmiselt:

Tase saab määrata ka meetodi setLevel () abiljava.util.loggingpakend nagu allpool:

logger.setLevel (Level.WARNING)

Näide Java-sse logimisest, kasutadesjava.util.loggingpakend:

pakett edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * klass EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) avalik void sampleLog () {LOGGER.log (Level.WARNING, 'Tere tulemast Edurekasse!')}} avaliku klassi klient {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, 'Tere! Tere tulemast Edurekast')}}

Rakenduses sisselogimise lubamiseksorg.apache.log4j. *pakend võijava.util.loggingpaketi, peate konfigureerima omaduste faili. Järgmisena selles artiklis Java-s logija kohta arutleme mõlema omaduste faili üle.

Log4j ja Java Utili paketi atribuutide fail

Log4j atribuutide näidisfail:

# Lubage juur logija suvand log4j.rootLogger = INFO, fail, stdout # Manustage liited faili printimiseks 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-pp HH: mm : ss}% -5p% c {1}:% L -% m% n # Manustage konsoolile printimiseks lisandid 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-KK-pp HH: mm: ss}% -5p% c {1}:% L -% m% n
  • Log4j atribuutide fail luuakse projekti src kausta sees.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> prindib kõik faili logid
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> prindib kõik konsooli logid
  • log4j.appender.file.File = D: loglogging.log -> määrab logifaili asukoha
  • log4j.appender.file.MaxFileSize = 10MB -> Logifaili maksimaalne suurus on 10MB
  • log4j.appender.file.MaxBackupIndex = 5 -> Varundefailide arv on piiratud 5-ga
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> määrab mustri, milles logid logifaili prinditakse.
  • log4j.appender.file.layout.ConversionPattern =% d {yyyy-MM-dd HH: mm: ss}% -5p% c {1}:% L -% m% n -> Määrab vaikimisi teisendusmustri.

Proov Java Utili paketi atribuutide fail

käitlejad = java.util.logging.ConsoleHandler .level = HOIATUS # Väljund salvestatakse vaikekataloogi 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 # Logide tase piirdub HOIATUSEGA ja kõrgemal. java.util.logging.ConsoleHandler.level = HOIATUS java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Siin,

  • java.util.logging.FileHandler.pattern =% h / java% u.log -> logifailid kirjutatakseC: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->Maksimaalne summa, mille logija kirjutab ühte faili baitides.
  • java.util.logging.FileHandler.count = 1 -> Määrab väljundfailide arvu
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> mainib vormindamisel kasutatud vormindajat. Siin kasutatakse XML-vormingut.
  • java.util.logging.ConsoleHandler.level = HOIATUS -> seab logi vaiketasemeks HOIATUS
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->MäärabVormindajakõigi kasutadaConsoleHandlerS. Siin kasutatakse SimpleFormatterit.

Sündmuste logimine

Sündmuste sisselogimiseks sisse , peate olema kindel, et määrate taseme sündmuste hõlpsaks kustutamiseks. Taseme määramiseks ja sõnumi mainimiseks võite kasutada järgmisi meetodeid:

1. meetod:

logger.log (Level.INFO, „Kuva teade”)
Siin on tase INFO ja prinditav sõnum on 'Kuva sõnum'.

2. meetod:

logger.info („Kuva teade”)

Veendumaks, et Java logija logib ainult INFO tasemel või sellest kõrgemad sündmused, saate kasutada setLevel () eespool käsitletud meetodit.

Nüüd, kui olen arutanud, kuidas Loggerit Java-s kasutada, arutagem Log4j arhitektuuri järgmist komponenti, s.o Appendersit.

Appender või käitlejad

Avaldaja või käitlejad vastutavad logisündmuste salvestamise eest sihtkohta. Igal logijal on juurdepääs mitmele käitlejale ja ta saab logisõnumi logijalt. Seejärel kasutavad lisandid sündmuste vormindamiseks vormindajaid või paigutusi ja saadavad need vastavasse sihtkohta.

Appenderi saab meetodi setLevel (Level.OFF) abil välja lülitada. Kaks kõige tavalisemat käitlejatjava.util.loggingpaketid on järgmised:

  • FileHandler: Kirjutage logisõnum faili
  • ConsoleHandler: Kirjutab logisõnumi konsooli

Teie paremaks mõistmiseks olen omaduste jaotises selgitanud väheseid lisajaid.

Paigutus või vormindajad

Vormindajate paigutust kasutatakse andmete vormistamiseks ja teisendamiseks logisündmuses.Logimisraamistikud pakuvad HTML, XML, Syslog, JSON, lihtteksti ja muude logide paigutusi.

  1. SimpleFormatter : Genereerib põhiteabega tekstsõnumeid.
  2. XML-vorming : Genereerib logi jaoks XML-teate

Teie paremaks mõistmiseks olen omaduste jaotises selgitanud mõnda paigutust.Sellega jõuame selle ajaveebi lõppu teemal “Logger in Java”. Loodan, et teil on selles artiklis selgeks õpitu selge.

milline idee on java jaoks parim

Vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kas teil on meile küsimus? Palun mainige seda selle blogi „Logger in Java“ kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.