Forskjellen mellom Slf4j vs Log4j

Hvis du er en utvikler, har du skrevet en loggføring ofte i karrieren din. Vi i denne artikkelen har dekket to av de mest brukte loggingsmekanismene - Log4j og Slf4j. Før vi begynner, ville det være greit å forstå noen grunnleggende omstendigheter som dekker HVA og hvorfor delen av hogsten. I dette emnet skal vi lære om Slf4j vs Log4j.

SLF4J: Det er en forkortet betegnelse på enkel loggfasade for Java som gjør det mulig for brukere å plugge inn det ønskede loggesystemet under distribusjonen av programvaren. Vær også oppmerksom på at vi brukte begrepet Fasademønster som ikke er annet enn et programvaredesignmønster som er vanlig å bruke i OOP.

Log4J: Det er et loggingsrammeverk (dvs. en semi build-applikasjon i seg selv) som er pålitelig, fleksibel og rask. Loggingen kan kategoriseres i forskjellige nivåer som spor, feilsøking, info, feil, dødelig og flere andre modus. Disse loggingsdetaljene kan deles til forskjellige plattformer som andre databaser og filkonsoller.

HVA - LOGGFILER kan betraktes som en sporingshistorie for alle aktivitetene med resultatene. De har også alle slags interaksjonsdetaljer som en bruker hadde med systemet, enten være transaksjonsdetaljer, informasjon eller også hvis noe går galt (jeg mener å si om den spesielle aktiviteten ikke utfører utførelsen).

HVORFOR - vi trenger å spore problemene, uttalelser om innlasting av funksjoner, typen parametere vi har sendt, advarsler eller varsler for å bedre forstå applikasjonen i utviklingsfasen og kan også brukes til fremtidig referanse.

Sammenligning av topp mot hode mellom Slf4j vs Log4j (Infographics)

Nedenfor er de topp 5 forskjellene mellom Slf4j vs Log4j

Viktige forskjeller mellom Slf4j vs Log4j

La oss diskutere noen av de viktigste forskjellene mellom Slf4j vs Log4j:

1. Ssl4j er bare en abstraksjon, eller den gir et abstraksjonslag, og vi bruker ikke det mens Log4j er et loggerammer som har forskjellige implementeringer.

2. Å snakke om komponentene i disse to Sl4j har ikke noen komponenter som sådan, den har en liste over implementeringer som logback eller NOPloggers og flere andre, mens det i tilfelle av log4j har tre hovedkomponenter innen -

  • Loggere: disse fanger loggingsinformasjonen i løpet av løpetiden
  • Appendere: de fungerer som output mens de publiserer logginformasjonen til forskjellige destinasjoner.
  • Oppsett: de gir formateringsalternativ i forskjellige stiler.

3. Når vi snakker om preferanser, vil vi si at det ikke er noen direkte sammenligning mellom ssl4j og log4j, men det kan være preferanser basert på spesielle situasjoner, og når du skal bruke en av dem, følger du under listen -

  • Ssl4j er enkel å bruke som API og enkel og grei
  • Ssl4j støtter alle viktige loggrammer
  • Ssl4j distribusjonsskip med bindinger for forskjellige loggere som enkle loggere, NOPlogger, Log4jloggeradapter, JDK14loggeradapter og JCLLoggerAdapter.
  • Ssl4j administrerer Maven-avhengighet
  • Det er mye brukt fordi det er perfekt dokumentert med alle ifs og men hensyn
  • Ssl4j støtter diagnostisk kontekstkartlegging under lagring av kontekstinformasjon
  • Log4j anses som trygg for logging
  • Den er svært optimalisert for forestillinger
  • Log4j støtter mer enn en appender (en komponent av log4j) per logger
  • Det brukes mye i hele bransjen og angir internaliseringsparametere.
  • Log4j støtter flere loggenivåer som WARN, INFO og ERROR.
  • Loggformatet og destinasjonen kan enkelt endres ved å endre layoutklassen og ved å implementere appender-grensesnittet.

4. Slf4j kan konfigureres til å bruke Log4j som loggingstøtte for å samarbeide, men senere konvertering er ikke mulig.

Slf4j vs Log4j sammenligningstabell

La oss se noen flere forskjeller mellom Slf4j vs Log4j

TittelSlf4jLog4j
migrasjonSlf4j er kompatibel med alle tidligere versjoner. En bruker kan enkelt migrere fra slf4j til hvilken som helst versjon uten problemer.Det er flere hindringer ettersom man må passe på migreringen, og snakker om Log4j2 er bakoverkompatibiliteten ikke mulig.
Siste versjonSsl4j har gitt ut sin siste og stabile versjon av 1.7Versjon 2.0.8 er den siste utgaven.
Valg av preferanserBiblioteker og innebygde komponenter bør foretrekke ssl4j ut fra deres loggbehov fordi disse bibliotekene ikke har valget mellom å logge rammer hos sluttbrukere.Når du trenger en mer dynamisk, fleksibel tilnærming som tilbyr flere funksjoner.
ForutsetningerDet første først forutsetningene varierer i henhold til versjonene. Senere versjoner har noen forskjellige krav sammenlignet med deres nyere kolleger. La oss se noen av disse kravene -

  • slf4j-nop: JDK 1.5
  • slf4j-simple: JDK 1.5
  • slf4j-log4j12: JDK 1.5, pluss eventuelle andre bibliotekavhengigheter som kreves av log4j-appenderen som er i bruk
  • slf4j-jdk14: JDK 1.5 eller nyere
  • logback-classic: JDK 1.5 eller nyere
Det er flere avhengigheter basert på krav, men de få viktige og ofte vurderte er nevnt nedenfor -

  • log4j 1.2.8 og tidligere versjoner er kompatible med JDK 1.1.x, mens den senere versjonen av log4j 1.2 er kompatibel med JDK 1.2 og nyere
  • log4j-test er avhengig av JUnit-testerammen
  • org.aache.log4j krever JMS API og JNDI
APIerNoen vanlige slf4j APIer er -

  • JCL-over-slf4j
  • jul-til-slf4j (for java.util.logging)
  • Log4j-over-slf4j (API-kompatibel med log4j)
Noen av log4j-APIene er -

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

Konklusjon

Logging er en viktig del av feilsøking av applikasjoner, det er en utviklingsparameter for å finne problemer under utviklingssyklusen. Om logging har vi vært vitne til to viktige spillere, det vil si CLF4J og LOG4J. Vi har også sett hva SLF4J og LOG4J er, hvilke muligheter de har og hvordan de kan brukes. I hovedsak brukes de av utviklere for logging og har noen spesifikke retningslinjer for bruk

Vi har listet opp et blokkskjema over hvordan disse to passer inn i loggscenariet -

Anbefalte artikler

Dette er en guide til Slf4j vs Log4j. Her diskuterer vi Slf4j vs Log4j viktige forskjeller med infografikk og sammenligningstabell. Du kan også se på følgende artikler for å lære mer -

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