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>