Log4j – 03 – Apache Log4j Konfigurasyon – 01
Merhaba Arkadaslar,
Bu yazimda Apache Log4j icin gerekli duzenlemeyi nasil ve nerede yapabilecegimiz konusundan bahsedecegim ve basit bir uygulama yapacagiz.
Log4j ‘yi projemizde/uygulamamizda kullanmadan once gerekli duzenlemeleri(konfigurasyon) uygulamamiza ozel olarak yapmamiz gerekir.
Bu duzenleme islemini istegimize ve ihtiyaca gore programlanabilir bir bicimde (programmatically) veya konfigurasyon dosyasi (configuration file) araciligiyla yapabiliriz. Konfigurasyon dosyasi ile bu duzenlemeleri yapmak daha esnek(flexible) ve tercih edilen bir yontemdir.
log4j.properties dosyasi log4j icin konfigurasyon bilgilerini key-value ciftleri halinde tutar. Varsayilan(default) olarak LogManager, konfigurasyon dosyasi olarak “log4.properties” ismini classpath’te arayacaktir.
Basit bir log4j.properties dosyamizin icerigi ve yapisi su sekilde olacaktir;
log4j.properties
## log4j.properties dosyamizi testAppender icin duzenleme yapiyoruz. ## logger seviyesini DEBUG olarak tanimladik. log4j.rootLogger =DEBUG, testAppender ##Loglari konsolda yazmak icin tanimla log4j.appender.testAppender=org.apache.log4j.ConsoleAppender ##layout konfigurasyonu log4j.appender.testAppender.layout=org.apache.log4j.PatternLayout
HelloLog4j.java
import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class HelloLog4j { static final Logger logger = Logger.getLogger(HelloLog4j.class); public static void main(String[] args) { PropertyConfigurator.configure("log4j.properties"); logger.debug("debug message"); logger.info("info message"); logger.warn("warn message"); logger.error("error message"); logger.fatal("fatal message"); } }
Logger sinifindan bir referans degiskeni tanimliyoruz , getLogger metodumuza sinif literalindeki degiskenimizi arguman olarak gonderiyoruz.
configure metodumuza arguman olarak konfigurasyon dosyamizin path+ismini veriyoruz.
Apache Log4j’yi projemizde kullanabilmek icin jar’a ihtiyacimiz var ;
<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
konfigurasyon dosyamiz properties formatinda olabilecegi gibi xml formatinda da olabilir;
log4j.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="testXMLappender" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> </layout> </appender> <root> <level value="debug" /> <appender-ref ref="testXMLappender" /> </root> </log4j:configuration>
HelloLog4jXML.java
package log4j.tutorial01.hellolog4j; import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; public class HelloLog4jXML { static final Logger logger = Logger.getLogger(HelloLog4jXML.class); public static void main(String[] args) { DOMConfigurator.configure("log4j.xml"); logger.debug("debug message"); logger.info("info message"); logger.warn("warn message"); logger.error("error message"); logger.fatal("fatal message"); } }
XML konfigurasyon dosyamiza ulasirken , PropertyConfigurator yerine DOMConfigurator sinifini kullaniyoruz.
Her iki konfigurasyon yontemi de esnektir(flexible). Bazi konfigurasyon yapisi sadece XML de yapilabilmektedir.
Yazimi burada sonlandiriyorum.
Maven Projesi : Log4jTutorial
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
injavawetrust
Leave a Reply