Verschil tussen Slf4j en Log4j

Als je een ontwikkelaar bent, heb je vaak een logboekverklaring in je carrière geschreven. We hebben in dit artikel twee van de meest gebruikte logboekmechanismen behandeld: Log4j en Slf4j. Voordat we beginnen, zou het goed zijn om enkele basisbegrippen te begrijpen die betrekking hebben op het WAT en WAAROM gedeelte van loggen. In dit onderwerp gaan we meer te weten over Slf4j versus Log4j.

SLF4J: Het is een verkorte term van eenvoudige loggevel voor Java waarmee gebruikers het gewenste logsysteem kunnen inpluggen tijdens de implementatie van de softwaretoepassingen. Houd er ook rekening mee dat we de term Gevelpatroon hebben gebruikt, dat niets anders is dan een ontwerppatroon voor software dat gebruikelijk is in OOP.

Log4J: Het is een logboekframework (dat wil zeggen een semi- buildapplicatie op zichzelf) die betrouwbaar, flexibel en snel is. De logging kan worden onderverdeeld in verschillende niveaus, zoals traceren, foutopsporing, info, fout, fataal en verschillende andere modi. Deze loggingsdetails kunnen worden gedeeld op verschillende platforms zoals andere databases en bestandsconsoles.

WAT - LOGBESTANDEN kunnen worden beschouwd als een trackinggeschiedenis van alle activiteiten met hun resultaten. Ze bevatten ook alle soorten interactiedetails die een gebruiker met het systeem had, ofwel transactiedetail, informatie of ook als er iets misgaat (ik bedoel te zeggen of de specifieke activiteit de uitvoering niet uitvoert).

WAAROM - we moeten de problemen, verklaringen met betrekking tot het laden van functies, het type parameters dat we hebben doorlopen, waarschuwingsberichten of meldingen volgen om de toepassing in de ontwikkelingsfase beter te begrijpen en kunnen ook worden gebruikt voor toekomstige referentie.

Head to Head-vergelijking tussen Slf4j en Log4j (infographics)

Hieronder staan ​​de top 5 verschillen tussen Slf4j en Log4j

Belangrijkste verschillen tussen Slf4j en Log4j

Laten we enkele van de belangrijkste verschillen tussen Slf4j en Log4j bespreken:

1. Ssl4j is slechts een abstractie of het biedt een abstractielaag en we gebruiken het niet, terwijl Log4j een logboekraamwerk is dat verschillende implementaties heeft.

2. Praten over de componenten binnen deze twee Sl4j heeft geen componenten, omdat het een lijst met implementaties zoals logback of NOPloggers en verschillende andere heeft, terwijl het in het geval van log4j 3 hoofdcomponenten heeft, namelijk -

  • Loggers: deze leggen de loginformatie vast tijdens de looptijd
  • Appenders: ze fungeren als output tijdens het publiceren van de loginformatie naar verschillende bestemmingen.
  • Lay-outs: ze bieden opmaakopties in verschillende stijlen.

3. Over voorkeuren gesproken, we zouden willen zeggen dat er geen directe vergelijking is tussen ssl4j en log4j, maar er kunnen voorkeuren zijn op basis van specifieke situaties en wanneer een van beide te gebruiken, volgt hieronder de lijst -

  • Ssl4j is gemakkelijk te gebruiken als API 'en eenvoudig en duidelijk
  • Ssl4j ondersteunt alle cruciale logging frameworks
  • Ssl4j-distributies worden geleverd met bindingen voor verschillende loggers, zoals eenvoudige loggers, NOPlogger, Log4jloggeradapter, JDK14loggeradapter en JCLLoggerAdapter.
  • Ssl4j beheert de afhankelijkheden van Maven
  • Het wordt veel gebruikt omdat het perfect is gedocumenteerd met alle if's en behalve aandacht
  • Ssl4j ondersteunt de diagnostische contextmapping terwijl de contextinformatie wordt opgeslagen
  • Log4j wordt als veilig beschouwd voor het loggen
  • Het is zeer geoptimaliseerd voor uitvoeringen
  • Log4j ondersteunt meer dan één appender (een onderdeel van log4j) per logger
  • Het wordt op grote schaal in de hele industrie gebruikt en stelt de internalisatieparameters in.
  • Log4j ondersteunt meerdere logniveaus zoals WARN, INFO en ERROR.
  • Het logformaat en de bestemming kunnen eenvoudig worden gewijzigd door de lay-outklasse te wijzigen en de appender-interface te implementeren.

4. Slf4j kan worden geconfigureerd om Log4j te gebruiken als een backend voor logboekregistratie om samen te werken, maar de latere conversie is niet mogelijk.

Slf4j versus Log4j-vergelijkingstabel

Laten we nog wat verschillen bekijken tussen Slf4j en Log4j

TitelSLF4Jlog4J
MigratieDe Slf4j is compatibel met alle voorgaande versies. Een gebruiker kan probleemloos van slf4j naar elke versie migreren.Er zijn verschillende belemmeringen, want men moet opletten voor de migratie. Over de Log4j2 gesproken, de achterwaartse compatibiliteit is niet mogelijk.
Laatste versieSsl4j heeft hun nieuwste en stabiele versie van 1.7 uitgebrachtVersie 2.0.8 is de nieuwste editie.
Keuze van voorkeurenBibliotheken en ingebedde componenten zouden de voorkeur moeten geven aan ssl4j voor hun logboekbehoeften, omdat deze bibliotheken niet de keuze hebben van een logboekkader voor de eindgebruiker.Wanneer u een meer dynamische, flexibele aanpak nodig hebt die meer functies biedt.
Pre-requisitesTen eerste variëren de vereisten vooraf per versie. Latere versies hebben enkele andere vereisten in vergelijking met hun nieuwere tegenhangers. Laten we enkele van deze vereisten bekijken -

  • slf4j-nop: JDK 1.5
  • slf4j-simple: JDK 1.5
  • slf4j-log4j12: JDK 1.5, plus andere bibliotheekafhankelijkheden vereist door de gebruikte log4j-appender
  • slf4j-jdk14: JDK 1.5 of hoger
  • logback-classic: JDK 1.5 of hoger
Er zijn verschillende afhankelijkheden op basis van vereiste, maar de paar belangrijke en algemeen beschouwde worden hieronder vermeld -

  • log4j 1.2.8 en eerdere versies zijn compatibel met JDK 1.1.x, terwijl de latere versie van log4j 1.2 compatibel is met JDK 1.2 en hoger
  • log4j-test is gebaseerd op het JUnit-testraamwerk
  • de org.aache.log4j vereist JMS API en JNDI
API'sEnkele veel voorkomende slf4j API's zijn -

  • jcl-over-SLF4J
  • jul-to-slf4j (voor java.util.logging)
  • Log4j-over-slf4j (API compatibel met log4j)
Sommige van de log4j API's zijn -

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

Conclusie

Logboekregistratie is een essentieel onderdeel van de probleemoplossing van toepassingen, het is een ontwikkelingsparameter voor het vinden van problemen tijdens de ontwikkelingscyclus. Over logging zijn we getuige geweest van twee cruciale spelers, namelijk CLF4J en LOG4J. We hebben ook gezien wat SLF4J en LOG4J zijn, welke mogelijkheden ze hebben en hoe ze kunnen worden gebruikt. In wezen worden ze gebruikt door ontwikkelaars voor logboekregistratie en hebben ze een aantal specifieke gebruiksrichtlijnen

We hebben een blokdiagram weergegeven van hoe deze twee in het logboekscenario passen -

Aanbevolen artikelen

Dit is een gids voor Slf4j vs Log4j. Hier bespreken we de belangrijkste verschillen tussen Slf4j en Log4j met infographics en vergelijkingstabel. U kunt ook de volgende artikelen bekijken voor meer informatie -

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