Koray PEKER
Menu
  • Anasayfa
  • Kütüphane
  • Kategoriler
    • Java
    • Spring
    • Tasarım Şablonları
    • Git
    • Maven
    • ORM Çatıları
    • VCS
    • SDLC
    • DevOps
    • Algoritma
    • Eğitim
    • Diğer
  • Hakkımda
Menu

Logger’ların Doğuşu

14 Ekim 201821 Ekim 2018 tarihinde yayımlandı

Log ne demektir? Türkçe olarak tanımlamak gerçekten zor ama şu şekilde diyebiliriz ; “Belirli bir sistemle ilgili olayların otomatik olarak ve zaman damgalı belgelendirmesidir.”

Uygulama geliştirirken, bir şeylerin yanlış gittiğini kontrol etmek için, geliştiriciler genel olarak debugger(hata ayıklayıcıları) kullanır. Ancak canlı ortamda(prod) bu çok mümkün olmayabilir. Bu nedenle, potansiyel hatayı yakalamaya yardımcı olmak için loglama ihtiyacı duyulmuştur.

Java’da, çok uzun bir süre önce, loglamanın bir yolu yoktu. İlkel yöntemlerle loglama yapılıyordu.

  • System.out
  • System.err
  • Exception.printStackTrace()

Fakat bunlar kullanıldığında bazı dezavatajlar vardı. Loglar sadece konsola yazdırılıyordu. Böylece, konsol kapatıldığında, tüm bu logları kaybetmiş oluyorduk. Yani, bu da logların kalıcı bir yerde saklanamaması demektir.

1996 yılının başlarında E.U. SEMPER projesi kendi loglama API’sini yazmaya karar verdi. API’nın, Java için popüler loglama paketi olan log4j haline gelmesi için pek çok çalışma yapıldı. Sonrasında,  açık kaynak lisansı olan Apache Yazılım Lisansı kapsamında dağıtılmıştır.

Apache log4j logo

Log4J çok tutulmaya başlamıştı. Sun şirketi Java içinde bir loglama özelliğine ihtiyaç duyduğunu hissetti, ancak doğrudan log4j kullanmak yerine, log4j den esinlenerek JDK 1.4 içerisinde java.util.logging(JUL) paketini oluşturdu.

Java’nın Evrimi yazısında da 1.4 ‘ ün çıkış tarihinin 6 Şubat 2002 olduğundan bahsetmiştik. Buradan çıkarcağımız sonuç Log4J’ye aslında bir rol model diyebiliriz.

Loglama tarafından birbirinden farklı kütüphaneler ortaya çıkmaya başlayınca 2002 yılı ortalarında Jakarta ekibi commons logging(ortak loglama) için  JCL(Jakarta Commons Logging diğer bir adı Apache Commons Logging) projesini çıkardılar.

Apache Commons logo

Her bir loglama uygulaması ortak bir API’ye uyarlandı ve böylece uygulamanız org.apache.log4j.Logger’ı kullanmaz onun yerine org.apache.commons.logging.Log’u kullanır. Bu sayede projenizde birden fazla kütüphaneyi kullanabilir ve hepsi için tek bir logger konfigürasyonu kullanabilirsiniz.

Ancak JCL yeterince iyi değildi. Kullanıcılar tarafından çözdüğünden daha fazla sorun yarattığını söyleniyordu. Ceki Gülcü (Log4j’nin mimarı) kollarını sıvadı ve 2005 yılında yeni bir SLF4J (Simple Logging Facade) projesini çıkardı. Aslında Log4jv2 değilde neden SLF4J tartışılır. Ama Ceki Gülcü’nün tek amacı daha iyi bir commons logging (ortak loglama) kütüphanesi yapmaktı. İlerleyen zamanlarda sadec SLF4j için bir makale yazacağım.

 

Ayrıca Log4j, 1999’dan beri yaygın olarak kullanılıyordu, ancak yeterince iyi değildi, bu yüzden yine Ceki Gülcü yeni bir proje daha yarattı ve 2006 yılında logback piyasaya çıktı. Log4j’den neden daha iyi olduğunu buradan okuyabilirsiniz.

Kaynaklar

  • https://logging.apache.org/log4j/2.x/log4j-users-guide.pdf
  • https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html
  • http://logging.apache.org/log4j/1.2/
  • https://dzone.com/articles/logging-with-log4j-in-java?oid=linkedin

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

POPÜLER YAZILAR

  • Çalışma Masam
  • Bir Yazılımcının Sırt Çantası
  • Modern Veri Tabanları
  • CI (Continuous integration) ve CD (Continuous Delivery/Deployment)
  • NullPointerException’dan Kaçış
  • Java Branching Statements (Dallanma İfadeleri)
  • İlk işime veda :(
  • Yük Testi ve SoapUI
  • Project : Lombok
  • Enumeration nedir ?

Ara

Son Yazılar

  • Çalışma Masam
  • Apache Kafka
  • Postman API’ları Görselleştirme
  • MongoDB Cheat Sheet
  • Splunk 101 – Giriş
  • Yük Testi ve SoapUI
  • Modern Veri Tabanları
  • Senior Stajyer ?!
  • API Dokümantasyon Önemi ve Swagger
  • Kod Tekrarı(Code Duplication) ve DRY

TAKİP ET

©2025 Koray PEKER