Bu Kategoriye İçerik Girin veya Soru Sorun

Kategori İçi Sözlük

Bu Sayfayı Paylaş:

Logback

Tanım: Java'da loglama yapmak için kullanılan bir kütüphane. log4j kütüphanesinin daha geliştirilmesi ile oluşturulmuştur.

logback-beagle

Tanım: Logback loglarını gösteren bir Eclipse plugin'i

LogBack ile Hello World Örneği

Maven kullanılıyor ise aşağıdaki bağımlılık eklenir :
<dependency>
              <groupId>ch.qos.logback</groupId>
              <artifactId>logback-classic</artifactId>
              <version>1.2.1</version>
</dependency>
Test kodu aşağıdaki gibi debug ve info loglarını atmaktadır :
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class Tester {
             
              Logger logger = LoggerFactory.getLogger(Tester.class);
 
              public void greeting() {
 
                            logger.debug("selamlanıyor..");
                           
                            System.out.println("Hello World");
                           
                            logger.info("Hello World selamı verildi");
                           
 
              }
 
              public void greeting(String name) {
                           
                            logger.debug("selamlanıyor : " + name);
                           
                            System.out.println("Hello " + name);
                           
                            logger.info("Hello "+ name + " selamı verildi");
 
              }
 
              public static void main(String[] args) {
 
                            Tester t = new Tester();
 
                            t.greeting();
 
                            t.greeting("Zafer Teker");
 
              }
 
}
Uygulama çalıştırıldığı zaman aşağıdaki gibi console'da logları görebilirsiniz :
14:08:36.699 [main] DEBUG com.fibiler.log.logback.Tester - selamlanıyor..
Hello World
14:08:36.702 [main] INFO com.fibiler.log.logback.Tester - Hello World selamı verildi
14:08:36.702 [main] DEBUG com.fibiler.log.logback.Tester - selamlanıyor : Zafer Teker
Hello Zafer Teker
14:08:36.702 [main] INFO com.fibiler.log.logback.Tester - Hello Zafer Teker selamı verildi
info ve debug dışında trace , warn ve error yöntemlerini de kullanabilirsiniz.

Herhangi bir konfigürasyon ayarı yapılmamasından dolayı loglama sadece console'a yapılmaktadır. Varsayılan format uygulanır :
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
Log formatını değiştirmek için classpath'e (örneğin src klasörüne) logback.xml dosyasını aşağıdaki gibi ekleyelim :
<configuration>
 
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{dd MMM yyyy HH:mm:ss,SSS} [%thread] %-5level %class{0} - %msg%n</pattern>
    </encoder>
  </appender>
 
  <root>
    <appender-ref ref="STDOUT" />
  </root>
 
</configuration>
Değişiklik olarak tarihe gün.ay.yil bilgisi eklendi ve %logger{36} kaldırıldı ve sadece sınıf adının eklenmesi sağlandı. Aynı uygulama bu şekilde çelıştırıldığında aşağıdaki gibi çıktı görülecektir ;
20 Şub 2016 12:24:13 [main] DEBUG Tester - selamlanıyor..
Hello World
20 Şub 2016 12:24:13 [main] INFO  Tester - Hello World selamı verildi
20 Şub 2016 12:24:13 [main] DEBUG Tester - selamlanıyor : Zafer Teker
Hello Zafer Teker
20 Şub 2016 12:24:13 [main] INFO  Tester - Hello Zafer Teker selamı verildi
XML'de STDOUT adlı bir appender yaratılıyor. Bu appander için pattern (desen) bilgileri veriliyor.

Console'un yanında logların dosyaya yazılmasını da sağlayabilirsiniz. Bunun için logback.xml'e file içine farklı bir appender eklemek gerekir :
<configuration>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{dd MMM yyyy HH:mm:ss,SSS} [%thread] %-5level %class{0} - %msg%n</pattern>
		</encoder>
	</appender>
	<appender name="FILE" class="ch.qos.logback.core.FileAppender">
		<file>E:\Log\app.log</file>
		<append>true</append>
		<immediateFlush>true</immediateFlush>
		<encoder>
			<pattern>%d{dd MMM yyyy HH:mm:ss,SSS} [%thread] %-5level %class{0} -
					 %msg%n</pattern>
		</encoder>
	</appender>
	<root>
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</root>
 
</configuration>
Görüldüğü gibi FILE adında yeni bir appender eklenmiş ve referans olarak root elementi içine eklenmiştir. Uygulama çalıştırılıp E:\Log\app.log içeriği kontrol edilirse aşağıdaki içeriği aşağıdaki gibi olacaktır :
10 Şub 2017 12:47:52 [main] DEBUG Tester -     selamlanıyor..
10 Şub 2017 12:47:52 [main] INFO  Tester -        Hello World selamı verildi
10 Şub 2017 12:47:52 [main] DEBUG Tester -     selamlanıyor : Zafer Teker
10 Şub 2017 12:47:52 [main] INFO  Tester -        Hello Zafer Teker selamı verildi

rollingPolicy elementi ile boyuta ve/veya tarih bazlı göre dosyanın yenilenmesi sağlanabilmektedir.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir