Log4j ve Slf4j Nedir?
Published: 2024-02-18 11:59:17

Merhabalar bugünkü yazımızda loglama işlemlerinde  güçlü  Kütüphanelerden  olan log4j ve slf4j nedir nasıl kullanılacağına bakacağız.

Log4j Nedir?

Log4j , Apache Yazılım Lisansı altında dağıtılan, Java ile yazılmış güvenilir, hızlı ve esnek bir log kaydı kütüphanesi (API'ler).

Log4j, runtime (çalışma zamanında) harici yapılandırma dosyaları aracılığıyla yüksek düzeyde yapılandırılabilir.

Log(Günlük) kaydetme sürecini öncelik seviyeleri açısından görüntüler.Log (Günlüğe) kaydetme bilgilerini veritabanı, dosya, konsol, UNIX Sistem Logları vb. gibi çok çeşitli hedeflere yönlendirmek için mekanizmalar Slf4j Nedir?

Slf4j, bizleri loglama frameworklerinden yalıtan, bağımsız olarak çalışmamızı sağlayan bir arayüzdür.log4j'den farklı olarak, SLF4J ( J ava için Simple Logging Facade ) bir log kaydı framework uygulaması değildir.

SLF4J ve Log4j Karşılaştırması

Log4j bir kayıt Frameworküdür.SLF4J ise farklı kayıt çerçeveleriyle çalışabilen bir API'dir.

Log4j daha hassas bir hiyerarşik kayıt protokolüne sahipken, SLF4J daha az karmaşık bir yaklaşım benimsiyor.

Log4j daha fazla topluluk desteğine sahiptir ve daha iyi performansa sahiptir, ancak SLF4J daha fazla esneklik ve taşınabilirlik sunar.

Log4j daha fazla topluluk desteğine sahiptir ve daha iyi performansa sahiptir, ancak SLF4J daha fazla esneklik ve taşınabilirlik sunar.

Log4j ve SLF4J: Fark Nedir?

Başlangıçta ikisi aynı görünüyor; hem Log4j hem de SLF4J, Java tabanlı ve diğer uygulamalar için günlük kaydı sağlıyor. Ancak Log4j ve SLF4J, paylaştıkları pek çok benzerliğe rağmen oldukça farklıdır.

Loglama, olayları günlüğe kaydetmek ve yönetmek için bir uygulama veya yazılımdaki bir kod parçasını ifade eder.

Uygulamalar sıklıkla hatalarla karşılaştığından ve bu hatalar zamanında uygun şekilde çözülmediği takdirde hizmet kesintisine yol açabileceğinden bu gereklidir. Sorun meydana gelirse iki senaryo vardır. İdeal olarak, neyin yanlış gittiğini, nedenini ve ne zaman yanlış gittiğini ve olası bir çözümü açıklayan bir hata mesajı alınır veya geri bildirim açık veya kapsamlı değildir. Bu ikinci senaryoyu önlemek için günlük kitaplıkları ve benzer yardımcı programlar mevcuttur.

Fark	Log4j	SLF4J
Mimari	Hassas bir hiyerarşik günlük kaydı protokolü ile kendi amaca yönelik olarak oluşturulmuş günlük kaydı mimarisine sahiptir.	Köprü görevi görür ve günlük kaydı mimarisine sahip değildir. Birden fazla günlük kaydı çerçevesiyle entegrasyonu destekler.
Topluluk Desteği ve Gelişimi	Daha uzun varlığı ve yaygın kullanımı nedeniyle daha fazla topluluk desteğine sahiptir.	Daha az topluluk desteği var ancak bu daha yaygın hale geldikçe değişebilir.
Verim	Yüksek performanslı ve kolayca ölçeklenebilir. Eşzamansız günlük kaydını destekler ve düşük bellek gereksinimlerine sahiptir.	Performans, uygulanan günlük kaydı çerçevesine bağlıdır. Log4j'den daha hafif olup çok yönlülüğünü artırır.
Özellikler ve Esneklik	Günlüğe kaydetme örnekleri üzerinde daha fazla kontrol için filtreler ve birden fazla ekleyici sunar.	Daha fazla esneklik ve taşınabilirlik sağlar. Farklı bir günlük kaydı çerçevesine kolay geçişe ve günlük çıktılarının özelleştirilmesine olanak tanır.
Logback, popüler log4j projesinin devamı olarak tasarlanmıştır ve log4j'nin kaldığı yerden devam eder.

Apache Log4j 2, Log4j'e yönelik bir yükseltme olup , öncülü olan Log4j 1.x'e göre önemli iyileştirmeler sağlar veLogback'in mimarisindeki bazı doğal sorunları düzeltirken Logback'te mevcut iyileştirmelerin çoğunu sağlar .

Spring Boot  Uygulamasında Log4j  Nasıl Uygulanır?

Pom.xml içerisinde ilgili  kütüphaneler

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>...</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>...</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>...</version>
<scope>compile</scope>
</dependency>
application properties ayarları

#LOGGiNG Slf4j

logging.level.root=info;
logging.level.org.springframework.security=info;
logging.level.org.springframework.web=info;
logging.level.org.hibernate=info;
logging.level.org.springframework.orm.jpa=info
logging.level.org.springframework.transaction=info
# for Hibernate only
logging.level.org.hibernate.engine.transaction.internal.TransactionImpl=info
 

Controller içerisinde log yazma



@Slf4j
Method içerisinde kullanımı

Umarım faydalı bir yazı olmuştur.

https://latestsoftwaredevelopers.com/blogDetay/368/log4j-ve-slf4j-nedir

Başka bir yazıda görüşmek üzere hoşçakalın!