Just-in-time(JIT) Compilation Producer / Consumer
Jul 08

log4jYazdığınız kod içerisine log cümlecikleri eklemek aslında basit bir debugging mantığıdır. Bazen bu tek kullanışlı yöntemde olabilir. Debug etmek için loglama daha çok dağınık sistemler için kullanılır.

Bir başka görüş ise kod içerisindeki loglama satırları kodu hem kirletmekte hem de kodun performansını azaltmakta olduğunu belirtir. Ve daha sonradan log satırlarını kaldırmak istediğinizde tekrardan kodun içerisinde teker teker aramamız gerekecek.

log4j ile kod içerisine yazdığınız log satırlarını kodu değiştirmeden properties dosyalarını değiştirerek kontrol edebilirsiniz. Ayrıca log4j normal loglamadan daha performanslı çalışmaktadır.

log4j’yi kullanmak için yukarıdaki kütüphaneyi projenizin classpathi içerisine koymanız gerekecek.

log4j size 4 ayrı uyarı seviyesi sunacak. Bunlar önem sırasına göre : DEBUG, INFO , WARN, ERROR ve FATAL. Eğer siz uyarı seviyenizi WARN yaparsanız sadece WARN ve onun üst seviyesi olan ERROR ve FATAL loglarını göreceksiniz.

log4j’nin hangi properties dosyasını okuyacağını
PropertyConfigurator.configure(”path/to/log4j.properties”);
komutuyla sağlayabilirsiniz.

log4j.properties dosyanızda örnek olarak aşağıdakini yazabilirsiniz.

# root log level DEBUG olarak ayarlandı
log4j.rootLogger=DEBUG, A1
 
# loglar konsola yazılacak
# istersek bir dosyaya yada veritabanına da yazabiliriz
log4j.appender.A1=org.apache.log4j.ConsoleAppender
 
# PatternLayout kullanılıyor
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

Aşağıda ise örnek kod bulunmaktadır.

import org.apache.log4j.*;
 
public class Demo {
    // Bu sınıf için log değişkeni oluşturuluyor
    static Logger log = Logger.getLogger(Demo.class.getName());
 
    public static void main(String[] args) {
        BasicConfigurator.configure();
 
        // bu yazı ekrana yazılacak
        log.info("başlıyor...");
 
        // log seviyesi runtime'da değiştiriliyor
        // WARN ve üst seviyedekiler(ERROR, FATAL) 
        // ekranda gözükecek
        log.setLevel(Level.WARN);
 
        // INFO, WARN'dan alt seviyeden olduğu için 
        // ekranda gözükmeyecek
        log.info("Bu mesaj ekranda gözükmeyecek!");
 
        try {
            // Burada exception attırıyoruz
            int x = 5;
            int y = 20 / (5 - x);
        } catch (Exception e) {
            // Ekranda gözükecek
            log.error("Hata!..", e);
        }
    }
}

yazan ekocaman

1 Yorum yapıldı “Loglama Servisleri - Log4J”

  1. Mehmet Emin diyor ki:

    Çok teşekürler .. Açıklayıcı bir yazı.. İşime yarayacak..Ellerine sağlık

Cevapla