Diferența dintre Slf4j și Log4j

Dacă ești dezvoltator, atunci ai scris frecvent o declarație de înregistrare în carieră. Noi în acest articol am acoperit două dintre cele mai utilizate mecanisme de înregistrare - Log4j și Slf4j. Înainte de a începe, ar fi bine să înțelegem câteva elemente de bază care acoperă ce și ce este porțiunea de înregistrare. În acest subiect, vom afla despre Slf4j vs Log4j.

SLF4J: Este un termen prescurtat al fațadei de logare simplă pentru Java care permite utilizatorilor să conecteze sistemul de logare dorit în timpul desfășurării aplicațiilor software. De asemenea, vă rugăm să rețineți că am folosit termenul de model Façade, care nu este altceva decât un model de design software care este obișnuit să fie utilizat în OOP.

Log4J: Este un cadru de logare (adică o aplicație semi-build în sine) care este fiabil, flexibil și rapid. Înregistrările pot fi clasificate în diferite niveluri precum urmărirea, depanarea, informațiile, eroarea, fatalele și alte câteva moduri. Aceste detalii de înregistrare sunt compatibile cu diferite platforme precum alte baze de date și console de fișiere.

CE - LOG FILES poate fi considerat ca un istoric de urmărire a tuturor activităților cu rezultatele lor. De asemenea, dețin orice fel de detalii de interacțiune pe care un utilizator le-a avut cu sistemul, fie detalii despre tranzacții, informații sau, de asemenea, dacă ceva nu merge bine (vreau să spun că activitatea particulară nu efectuează execuția).

DE CE - trebuie să urmărim problemele, declarațiile privind încărcarea funcțiilor, tipul de parametri pe care am trecut, mesaje de avertizare sau notificări pentru a înțelege mai bine aplicația în faza de dezvoltare și pot fi, de asemenea, utilizate pentru referințe viitoare.

Comparație față în față între Slf4j și Log4j (Infografie)

Mai jos se află primele 5 diferențe între Slf4j și Log4j

Diferențe cheie între Slf4j și Log4j

Să discutăm unele dintre diferențele majore dintre Slf4j și Log4j:

1. Ssl4j este doar o abstracție sau furnizează un strat de abstractizare și nu îl utilizăm în timp ce Log4j este un cadru de logare care are implementări diferite.

2. Vorbirea componentelor din acest doi Sl4j nu are componente, ca atare, are o listă de implementări precum logback sau NOPloggers și multe altele, în timp ce în cazul log4j are 3 componente principale, și anume -

  • Loggers: aceștia captează informațiile de înregistrare în timpul rulării
  • Aplicanți: acționează ca rezultate în timp ce publică informațiile de înregistrare în diferite destinații.
  • Aspecte: oferă opțiunea de formatare în diferite stiluri.

3. Vorbind despre preferințe, am dori să spunem că nu există nicio comparație directă între ssl4j și log4j, dar poate exista preferințe bazate pe situații particulare și când să le utilizăm pe oricare dintre ele, urmează mai jos lista -

  • Ssl4j este ușor de utilizat ca API și simplu și simplu
  • Ssl4j acceptă toate cadrele de înregistrare cruciale
  • Distribuirea Ssl4j este livrată cu legături pentru diferite jurnale, cum ar fi jurnalele simple, NOPlogger, Log4jloggeradapter, JDK14loggeradapter și JCLLoggerAdapter.
  • Ssl4j gestionează dependențele Maven
  • Este utilizat pe scară largă, deoarece este perfect documentat cu toate, dacă nu și în considerare
  • Ssl4j acceptă maparea contextului de diagnostic în timp ce stochează informațiile din context
  • Log4j este considerat sigur pentru practica de logare
  • Este foarte optimizat pentru spectacole
  • Log4j acceptă mai multe aplicații (o componentă a log4j) pe logger
  • Este utilizat pe scară largă în întreaga industrie și stabilește parametrii de internalizare.
  • Log4j acceptă mai multe niveluri de înregistrare, cum ar fi WARN, INFO și EROARE.
  • Formatul de înregistrare și destinația pot fi modificate cu ușurință prin schimbarea clasei de aspect și prin implementarea interfeței appender.

4. Slf4j poate fi configurat pentru a utiliza Log4j ca backend de logare pentru a lucra împreună, dar conversia ulterioară nu este posibilă.

Tabelul de comparare Slf4j vs Log4j

Să vedem alte diferențe între Slf4j și Log4j

TitluSlf4jLog4j
migrațiuneSlf4j este compatibil cu toate versiunile sale anterioare. Un utilizator poate migra cu ușurință de la slf4j la orice versiune fără nicio problemă.Există mai multe obstacole deoarece migrația trebuie să aibă grijă, vorbind de Log4j2 compatibilitatea înapoi nu este posibilă.
Ultima versiuneSsl4j a lansat cea mai recentă și stabilă versiune de 1.7Versiunea 2.0.8 este cea mai recentă ediție.
Alegerea preferințelorBibliotecile și componentele încorporate ar trebui să prefere ssl4j pentru nevoile lor de logare, deoarece aceste biblioteci nu au alegerea cadrului de înregistrare la utilizatorul final.Ori de câte ori ai nevoie de o abordare mai dinamică, mai flexibilă, care oferă mai multe caracteristici.
Pre-rechizitePrimul lucru în primul rând, condițiile prealabile variază în funcție de versiuni. Versiunile ulterioare au unele cerințe diferite în comparație cu omologii lor mai noi. Să vedem câteva dintre aceste cerințe -

  • slf4j-nop: JDK 1.5
  • slf4j-simplu: JDK 1.5
  • slf4j-log4j12: JDK 1.5, plus orice alte dependențe de bibliotecă solicitate de aplicația log4j în utilizare
  • slf4j-jdk14: JDK 1.5 sau o versiune ulterioară
  • logback-clasic: JDK 1.5 sau o versiune ulterioară
Există mai multe dependențe bazate pe cerință, dar puținele importante și care sunt luate în considerare sunt menționate mai jos -

  • log4j 1.2.8 și versiunile anterioare sunt compatibile cu JDK 1.1.x, în timp ce versiunea ulterioară a log4j 1.2 este compatibilă cu JDK 1.2 și versiunile ulterioare
  • Log4j test se bazează pe cadrul de testare JUnit
  • org.aache.log4j necesită API JMS și JNDI
APIUnele API comune slf4j sunt -

  • JCL-over-slf4j
  • jul-la-slf4j (pentru java.util.logging)
  • Log4j-over-slf4j (API-ul compatibil cu log4j)
Unele dintre API-ul log4j sunt -

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

Concluzie

Jurnalul este o parte esențială a depanării aplicațiilor, este un parametru de dezvoltare pentru a găsi probleme în timpul ciclului de dezvoltare. În ceea ce privește logarea, am asistat la doi jucători cruciali, adică CLF4J și LOG4J. Am văzut, de asemenea, ce sunt SLF4J și LOG4J, ce posibilități dețin și cum pot fi utilizate. În esență, sunt utilizate de dezvoltatori pentru logare și au câteva reguli specifice de utilizare

Am enumerat o diagramă bloc a modului în care aceste două se încadrează în scenariul de înregistrare -

Articole recomandate

Acesta este un ghid pentru Slf4j vs Log4j. Aici vom discuta despre diferențele cheie Slf4j și Log4j cu infografie și tabelul de comparație. De asemenea, puteți arunca o privire la următoarele articole pentru a afla mai multe -

  1. Ansible vs marionetă
  2. Ansible vs Marionetă vs Chef
  3. Debian vs Arh
  4. Kubernetes vs Docker