Log Tutma

ESYA JAVA kütüphaneleri log işlemi için slf4j önyüzünü kullanmaktadır. Bu önyüz kendiliğinden bir loglama kütüphanesi sunmamakta fakat farklı alternatiflerin kullanılmasını desteklemektedir.

Log alabilmek için öncelikle slf4j'in desteklediği bir log kütüphanesi kullanılmalıdır. Bunlar jul (java.util.logging) veya log4j olabilmekle birlikte slf4j’in kendi kütüphanesi de kullanılabilir. Eğer jul kullanılacaksa jul için olan bağlayıcı sınıf (slf4j-jdk14-<sürüm>.jar) kullanılmalıdır. Eğer log4j kullanılacaksa log4j için olan bağlayıcı sınıfın (slf4j-log4j12-<sürüm>.jar) yanında log4j kütüphanesi de eklenmelidir. İstenirse bağlayıcı olmadan slf4j’in kendi kütüphanesi de kullanılabilir. Log ayarları ise slf4j önyüzü üzerinden değil, kullanılan kütüphanenin özellik dosyası üzerinden yapılabilir.

Log4j kullanıldığı takdirde PropertyConfigurator.configure(“dosya_ismi”) komutu ile log konfigürasyon dosyası verilebilir.

 
#PropertConfigurator.configure("log4j.properties"); 
# Set root logger level to DEBUG and its appender to console,rolling,lf5rolling 
log4j.rootLogger=debug,rolling 
# BEGIN APPENDER: CONSOLE APPENDER (console) 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%p %d{DATE} %c{2} (%F:%M:%L) - %m%n 
# END APPENDER: CONSOLE APPENDER (console) 
# BEGIN APPENDER: ROLLING FILE APPENDER (rolling) 
log4j.appender.rolling=org.apache.log4j.RollingFileAppender 
log4j.appender.rolling.File=ESYA_API.log 
log4j.appender.rolling.MaxFileSize=50MB 
log4j.appender.rolling.MaxBackupIndex=20 
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout 
log4j.appender.rolling.layout.ConversionPattern=%p %d{DATE} %c{2} (%F:%M:%L) - %m%n 
# END APPENDER: ROLLING FILE APPENDER (rolling)

Jul için, kullanılan jre’nin içindeki lib klasöründe logging.properties dosyası değiştirilerek log konfigürasyonu yapılabilir.

 
handlers= java.util.logging.ConsoleHandler.level= FINE
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
com.xyz.foo.level = FINE

ESYA C# kütüphanesi ise log4net kullanmaktadır. Konfigürasyon dosyası XmlConfigurator.Configure(new FileInfo(“dosya_ismi”)) şeklinde gösterilebilir.

 
<log4net> 
<!-- A1 is set to be a ConsoleAppender --> 
<appender name="A1" type="log4net.Appender.ConsoleAppender"> 
<!-- A1 uses PatternLayout --> 
<layout type="log4net.Layout.PatternLayout"> 
<conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" /> 
</layout> 
</appender> 
<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
<file value="ESYA_API.log" /> 
<appendToFile value="true" /> 
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
<layout type="log4net.Layout.PatternLayout"> 
<conversionPattern value="%date [%thread] %level %logger %ndc(%F:%L) - %message%newline" /> 
</layout> 
</appender> 
<!-- Set root logger level to DEBUG and its only appender to A1 --> 
<root> 
<level value="ALL" /> 
<appender-ref ref="FileAppender" /> 
</root> 
</log4net>