Log4j – 05 – Apache Log4j Konfigurasyon – 03 Web Application

Merhaba Arkadaslar
Bu yazimizda Web Uygulamalari(Application) icin Log4j konfigurasyonunu inceleyegiz.

Basit bir web uygulamasi yapacagiz ve bu uygulama icin basit bir web container yeterli olacaktir. Burada isimizi Apache Tomcat gorecektir.

Maven ve JSF yazilarimda Apache Tomcat kurulumundan bahsetmistim.

Apache Maven Ders 3 – Apache Tomcat & Deploy Web Application
JSF – 01 – Baslangic ve Kurulum

Burada detayli olarak Tomcat kurulumu , Servlet gibi konulardan bahsetmeyecegim. Servlet konusunu ilgili baslik altinda detayli olarak ilerleyen gunlerde yazacagim.

Yeni bir Dynamic Web Project olusturalim.  Log4jWebApp ismini verdim.
Yeni bir paket olusturduktan sonra sinifimizi olusturuyoruz;

LoggingServlet.java

package com.injavawetrust;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.io.IOException;
import org.apache.log4j.*;

public class LoggingServlet extends HttpServlet {
	private static Logger logger = Logger.getLogger(LoggingServlet.class);

	public void init() throws ServletException {
		super.init();
		String configFile = getInitParameter("log4j-conf");
		PropertyConfigurator.configureAndWatch(configFile);
		logger.info("###### Servlet init() metodu basariyla calisti.");
	}

	public void doGet(HttpServletRequest req, HttpServletResponse res)
			throws IOException, ServletException {

		PrintWriter writer = res.getWriter();
		writer.println("Log4j mesaji icin Eclipse Console'a bakiniz.");
		writer.flush();
		writer.close();
		logger.info("###### doGet metodu sonlandi.");
	}
}

Servlet’imizi Web Container(Tomcat) e tanitmak icin web.xml dosyamizda gerekli duzenlemeleri yapalim.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>Log4jWebApp</display-name>

	<servlet>
		<servlet-name>LoggingServlet</servlet-name>
		<servlet-class>com.injavawetrust.LoggingServlet</servlet-class>
		<init-param>
			<param-name>log4j-conf</param-name>
			<param-value>log4j.properties</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>LoggingServlet</servlet-name>
		<url-pattern>/LoggingServlet</url-pattern>
	</servlet-mapping>

</web-app>

<servlet> etiketi ile yeni bir Servlet tanimi yapiyoruz. <servlet-name> ile Servlet’imize yeni bir isim veriyoruz bu ismi diledigimiz gibi verebiliriz. <servlet-class> etiketi ile Servlet’imizin pakeismini+sinif ismini yaziyoruz.

<init-param> ile bu Sevlet’imiz icin baslangic parametreleri ekleyebiliyoruz.

<servlet-mapping> ile ilgili <servlet-name> e sahip Servlet icin URL adresini yaziyoruz.

Not: Buradaki kavramlari detayli olarak Servlet+JSP yazilarinda bulacaksiniz.

log4j.properties icin bir onceki yazidaki dosyayi kullanabiliriz;

## 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

Ornegimizi calistirdigimizda ;

servlet browser

Eclipse Console’a baktigimizda ;

eclipse console

Yazimi burada sonlandiriyorum.
Projenin Maven hali  : Log4jWebApp

Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *