Razlika med Slf4j proti Log4j

Če ste razvijalec, potem v svoji karieri pogosto pišete izjavo o sečnji. V tem članku smo zajeli dva najpogosteje uporabljena mehanizma za beleženje - Log4j in Slf4j. Preden začnemo, bi bilo dobro razumeti nekaj osnov, ki pokrivajo KAJ in ZAKAJ del sečnje. V tej temi bomo spoznali Slf4j proti Log4j.

SLF4J: Skrajšana fasada za preprosto beleženje jave, ki uporabnikom omogoča, da med uvajanjem programskih programov vklopijo želeni sistem beleženja. Upoštevajte tudi, da smo uporabili izraz Façade pattern, ki ni nič drugega kot vzorec oblikovanja programske opreme, ki se običajno uporablja v OOP.

Log4J: Zanesljiv, fleksibilen in hiter je sam okvir beleženja (tj. Aplikacija za polno sestavljanje). Dnevniki se lahko razvrstijo na različne ravni, kot so sled, odpravljanje napak, informacije, napake, usodni in več drugih načinov. Te podrobnosti evidenc se lahko delijo na različnih platformah, kot so druge baze podatkov in konzole datotek.

KAJ - Datoteke dnevnika lahko štejemo za zgodovino spremljanja vseh dejavnosti z njihovimi rezultati. Vsebujejo tudi vse podrobnosti o interakciji, ki jih je uporabnik imel s sistemom, bodisi podrobnosti o transakcijah, informacije ali tudi, če gre kaj narobe (hočem reči, če določena dejavnost ne izvede izvedbe).

ZAKAJ - slediti moramo težavam, izjavam v zvezi z nalaganjem funkcij, vrsto parametrov, ki smo jih posredovali, opozorilnimi sporočili ali obvestili, da lahko bolje razumemo aplikacijo v razvojni fazi in jih lahko uporabimo tudi v prihodnje.

Primerjava med glavo in Slf4j proti Log4j (Infographics)

Spodaj je zgornjih 5 razlik med Slf4j proti Log4j

Ključne razlike med Slf4j proti Log4j

Pogovorimo se o nekaterih glavnih razlikah med Slf4j in Log4j:

1. Ssl4j je samo abstrakcija ali nudi abstrakcijsko plast in je ne uporabljamo, Log4j pa je beleženje, ki ima različne izvedbe.

2. Ko govorimo o komponentah znotraj tega dveh Sl4j nima nobenih komponent, ima seznam izvedb, kot so logback ali NOPloggers, in več drugih, medtem ko ima v primeru log4j 3 glavne komponente, in sicer -

  • Dnevniki: ti zajemajo podatke beleženja med izvajanjem
  • Dodaki: delujejo kot izhodi, medtem ko objavljajo podatke za beleženje na različne destinacije.
  • Postavitve: omogočajo oblikovanje v različne sloge.

3. Če govorimo o preferencah, želimo povedati, da ni neposredne primerjave med ssl4j in log4j, vendar lahko obstajajo preferenci na podlagi določenih situacij in kdaj uporabiti katero koli od njih, sledi spodaj seznam -

  • Ssl4j je enostaven za uporabo kot API 'ter preprost in preprost
  • Ssl4j podpira vse ključne okvire beleženja
  • Ssl4j distribucijske ladje z vezmi za različne dnevnike, kot so enostavni dnevniki, NOPlogger, Log4jloggeradapter, JDK14loggeradapter in JCLLoggerAdapter.
  • Ssl4j upravlja Maven-ove odvisnosti
  • Široko se uporablja, ker je odlično dokumentiran z vsemi, če in ne upoštevamo
  • Ssl4j podpira diagnostično preslikavo konteksta, medtem ko hrani kontekstne informacije
  • Log4j velja za varen za beleženje
  • Je zelo optimiziran za predstave
  • Log4j podpira več kot en dodatek (sestavni del log4j) na drvar
  • Široko se uporablja v industriji in postavlja parametre internalizacije.
  • Log4j podpira več ravni beleženja, kot so WARN, INFO in ERROR.
  • Obliko zapisa in cilje beleženja lahko enostavno spremenite s spreminjanjem razreda postavitve in implementacijo vmesnika dodajalca.

4. Slf4j je mogoče konfigurirati tako, da Log4j uporablja kot bazo za beleženje za skupno delo, vendar poznejša pretvorba ni mogoča.

Primerjalna tabela Slf4j proti Log4j

Poglejmo še nekaj razlik med Slf4j proti Log4j

NaslovSlf4jLog4j
MigracijeSlf4j je združljiv z vsemi svojimi prejšnjimi različicami. Uporabnik lahko brez težav preide s slf4j na katero koli različico.Obstaja več ovir, saj je treba paziti na selitev, če govorimo o Log4j2, združljivost za nazaj pa ni mogoča.
Najnovejša različicaSsl4j je izdal njihovo zadnjo in stabilno različico 1.7Različica 2.0.8 je zadnja izdaja.
Izbira preferencKnjižnice in vgrajene komponente bi morale imeti raje ssl4j za potrebe beleženja, ker te knjižnice nimajo možnosti izbire okvira za beleženje pri končnem uporabniku.Kadar koli potrebujete bolj dinamičen, prilagodljiv pristop, ki ponuja več funkcij.
PredpogojiNajprej je potrebno, da se predpogoji razlikujejo glede na različice. Kasnejše različice imajo v primerjavi z novejšimi različicami nekaj drugačnih zahtev. Oglejmo si nekatere od teh zahtev -

  • slf4j-nop: JDK 1.5
  • slf4j-preprost: JDK 1.5
  • slf4j-log4j12: JDK 1.5 in vse druge odvisnosti knjižnice, ki jih zahteva pripisnik log4j v uporabi
  • slf4j-jdk14: JDK 1.5 ali novejši
  • klasična prijava: JDK 1.5 ali novejši
Glede na potrebe obstaja več odvisnosti, nekaj pomembnih in pogosto obravnavanih pa je omenjenih spodaj -

  • log4j 1.2.8 in starejše različice so združljivi z JDK 1.1.x, medtem ko je kasnejša različica log4j 1.2 združljiva z JDK 1.2 in novejšimi
  • log4j test temelji na testnem okviru JUnit
  • org.aache.log4j zahteva JMS API in JNDI
API-jiNekateri pogosti API-ji slf4j so -

  • jcl-over-slf4j
  • jul-to-slf4j (za java.util.logging)
  • Log4j-over-slf4j (API združljiv z log4j)
Nekateri od log4j API-jev so -

  • Category.getParent ()
  • Category.setLevel ()
  • Kategorija.setPriority ()
  • Category.getAdditivity ()
  • Category.setAdditivity ()
  • Category.getResourceBundle ()
  • BasicConfigurator.configure ()

Zaključek

Beleženje je bistven del odpravljanja težav v aplikacijah, je razvojni parameter iskanja težav v razvojnem ciklu. Glede beleženja smo bili priča dvema ključnima igralcema, to sta CLF4J in LOG4J. Videli smo tudi, kaj sta SLF4J in LOG4J, kakšne možnosti imata in kako ju je mogoče uporabiti. V bistvu jih uporabljajo razvijalci za beleženje in imajo nekatere posebne smernice uporabe

Našteli smo blok diagram, kako se ta dva ujemata v scenarij beleženja -

Priporočeni članki

To je vodnik za Slf4j proti Log4j. Tukaj razpravljamo o ključnih razlikah Slf4j proti Log4j z infografiko in primerjalno tabelo. Za več informacij si lahko ogledate tudi naslednje članke -

  1. Ansible vs Lutka
  2. Ansible vs Puppet vs Chef
  3. Debian proti Arch
  4. Kubernetes proti Docker