Rozdíl mezi Slf4j vs. Log4j

Pokud jste vývojář, ve své kariéře jste často psali logovací prohlášení. V tomto článku jsme se zabývali dvěma nejčastěji používanými mechanismy protokolování - Log4j a Slf4j. Než začneme, bylo by dobré porozumět některým základům pokrývajícím WHAT a WHY část protokolování. V tomto tématu se budeme učit o Slf4j vs Log4j.

SLF4J: Jedná se o zkrácený termín jednoduché fasády protokolování pro Javu, který uživatelům umožňuje zapojit požadovaný logovací systém během nasazení softwarových aplikací. Také si všimněte, že jsme použili termín Fasádní vzor, ​​který není ničím jiným než vzorem softwarového designu, který se běžně používá v OOP.

Log4J: Jedná se o logovací rámec (tj. Samo o sobě polotovar), který je spolehlivý, flexibilní a rychlý. Protokoly lze rozdělit do různých úrovní, jako je trasování, ladění, informace, chyby, fatální a několik dalších režimů. Tyto podrobnosti o logování lze sdílet na různých platformách, jako jsou jiné databáze a souborové konzole.

CO - LOGOVÉ SOUBORY lze považovat za sledovací historii všech činností s jejich výsledky. Drží také všechny podrobnosti o interakcích, které měl uživatel se systémem, ať už jsou to podrobnosti o transakci, informace, nebo také, pokud se něco pokazí (myslím tím, že konkrétní činnost neprovádí provádění).

PROČ - musíme sledovat problémy, příkazy týkající se načítání funkcí, typ parametrů, které jsme předali, varovné zprávy nebo oznámení, abychom lépe porozuměli aplikaci ve vývojové fázi a lze je také použít pro budoucí použití.

Srovnání hlava-hlava mezi Slf4j vs Log4j (Infografika)

Níže je pět největších rozdílů mezi Slf4j vs. Log4j

Klíčové rozdíly mezi Slf4j vs. Log4j

Pojďme diskutovat o některých hlavních rozdílech mezi Slf4j vs. Log4j:

1. Ssl4j je pouze abstrakce nebo poskytuje abstrakční vrstvu a my ji nepoužíváme, zatímco Log4j je logovací rámec, který má různé implementace.

2. Mluvení o součástech v rámci těchto dvou Sl4j nemá žádné komponenty jako takové, má seznam implementací jako logback nebo NOPloggers a několik dalších, zatímco v případě log4j má 3 hlavní komponenty, jmenovitě -

  • Loggery: tyto zaznamenávají logovací informace během běhu
  • Appenders: působí jako výstupy při publikování logovacích informací do různých destinací.
  • Rozvržení: poskytují možnost formátování do různých stylů.

3. Když už mluvíme o preferencích, chtěli bychom říci, že neexistuje přímé srovnání mezi ssl4j a log4j, ale mohou existovat preference založené na konkrétních situacích a kdy použít některou z nich, následuje pod seznamem -

  • Ssl4j se snadno používá jako API 'a je jednoduchý a přímočarý
  • Ssl4j podporuje všechny klíčové protokolovací rámce
  • Distribuce Ssl4j se dodává s vazbami pro různé loggery, jako jsou jednoduché loggery, NOPlogger, Log4jloggeradapter, JDK14loggeradapter a JCLLoggerAdapter.
  • Ssl4j řídí závislosti Maven
  • Je široce používán, protože je dokonale zdokumentován se vším, zda a bez ohledu na to
  • Ssl4j podporuje diagnostické mapování kontextu při ukládání informací o kontextu
  • Log4j je považován za bezpečný pro protokolování
  • Je vysoce optimalizován pro výkon
  • Log4j podporuje více než jeden appender (součást log4j) na logger
  • Je široce používán v průmyslu a nastavuje parametry internalizace.
  • Log4j podporuje více úrovní protokolování, například WARN, INFO a ERROR.
  • Formát a cíl protokolování lze snadno změnit změnou třídy rozvržení a implementací rozhraní appender.

4. Slf4j lze nakonfigurovat tak, aby používal Log4j jako backend protokolování pro spolupráci, ale pozdější konverze není možná.

Srovnávací tabulka Slf4j vs. Log4j

Podívejme se na další rozdíly mezi Slf4j a Log4j

TitulSlf4jLog4j
MigraceSlf4j je kompatibilní se všemi předchozími verzemi. Uživatel může snadno přenést ze slf4j na jakoukoli verzi bez jakýchkoli problémů.Existuje několik překážek, protože je třeba se postarat o migraci, pokud jde o Log4j2, zpětná kompatibilita není možná.
Nejnovější verzeSsl4j vydala svou nejnovější a stabilní verzi 1.7Verze 2.0.8 je nejnovější vydání.
Výběr preferencíKnihovny a vestavěné komponenty by měly upřednostňovat ssl4j pro své potřeby protokolování, protože tyto knihovny nemají na konci koncového uživatele možnost volby rámce protokolování.Kdykoli potřebujete dynamičtější a flexibilnější přístup, který nabízí více funkcí.
PředpokladyNejdříve se předběžné požadavky liší podle verzí. Pozdější verze mají ve srovnání s novějšími protějšky různé požadavky. Podívejme se na některé z těchto požadavků -

  • slf4j-nop: JDK 1.5
  • slf4j-simple: JDK 1.5
  • slf4j-log4j12: JDK 1.5, plus jakékoli další závislosti na knihovnách, které vyžaduje používaný appender log4j
  • slf4j-jdk14: JDK 1.5 nebo novější
  • logback-classic: JDK 1.5 nebo novější
Existuje několik závislostí na základě požadavku, ale několik důležitých a běžně zvažovaných je uvedeno níže -

  • log4j 1.2.8 a předchozí verze jsou kompatibilní s JDK 1.1.x, zatímco novější verze log4j 1.2 je kompatibilní s JDK 1.2 a novějšími
  • test log4j spoléhá na testovací rámec JUnit
  • org.aache.log4j vyžaduje JMS API a JNDI
APINěkteré běžné rozhraní API slf4j jsou -

  • jcl-over-slf4j
  • jul-to-slf4j (pro java.util.logging)
  • Log4j-over-slf4j (API kompatibilní s log4j)
Některé API log4j jsou -

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

Závěr

Logování je podstatnou součástí řešení problémů s aplikací, jedná se o vývojový parametr pro hledání problémů během vývojového cyklu. O logování jsme byli svědky dvou klíčových hráčů, tj. CLF4J a LOG4J. Viděli jsme také, co jsou SLF4J a LOG4J, jaké možnosti mají a jak je lze použít. V zásadě je používají vývojáři pro protokolování a mají určité specifické pokyny pro použití

Uváděli jsme blokový diagram toho, jak se tyto dva hodí ve scénáři protokolování -

Doporučené články

Toto je průvodce Slf4j vs. Log4j. Zde diskutujeme klíčové rozdíly Slf4j vs Log4j s infografikou a srovnávací tabulkou. Další informace naleznete také v následujících článcích -

  1. Možné vs loutky
  2. Možné vs loutkové vs kuchař
  3. Debian vs Arch
  4. Kubernetes vs Docker

Kategorie: