En esta entrada les traigo un ejemplo de como colocar un log dentro de nuestro sistema web usando Spring y la libreria de Apache Log4j
Requisitos:
JDK 1.6
NetBeans IDE
Log4j
Creamos un nuevo proyecto web desde Netbeans usando Spring.
new --> web aplication
En la parte donde tenemos que elegir el framework usamos spring web MVC
En el archivo web.xml configuramos el archivo log4j-helloworld.properties y nuestro DispatcherServlet.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>HelloWorld</display-name>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j-helloworld.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
crear el archivo log4j-helloworld.properties en la ruta /WEB-INF/ e incluir la siguiente configuraciĂłn en el
log4j.rootLogger=ERROR, stdout, rollingFile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=${webapp.root}/WEB-INF/logs/helloworld.log
#log4j.appender.rollingFile.File=${catalina.home}/logs/helloworld.log
log4j.appender.rollingFile.MaxFileSize=512KB
log4j.appender.rollingFile.MaxBackupIndex=10
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.rollingFile.Encoding=UTF-8
posteriormente creamos el archivo de configuracion en la ruta y nombre /WEB-INF/HelloWorld-servlet
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="it.helloworld.controller" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
creamos el archivo /WEB-INF/index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Welcome Page</title>
</head>
<body>
<jsp:forward page="helloWorld.html" />
</body>
</html>
creamos el archivo WEB-INF/views/helloWorld.jsp con lo siguiente:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World desde las vistas!!!</h1>
</body>
</html>
creamos la siguiente clase HelloWorldController en el siguiente paquete: it.helloworld.controller
package it.helloworld.controller;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorldController {
private static org.apache.log4j.Logger log = Logger.getLogger(HelloWorldController.class);
@RequestMapping(value = {"/index", "/helloWorld"})
public ModelAndView helloWorld() {
log.trace("Ejemplo Trace");
log.debug("Ejemplo Debug");
log.info("Ejemplo Info");
log.warn("Ejemplo Warn");
log.error("Ejemplo Error");
log.fatal("Ejemplo Fatal");
return new ModelAndView("helloWorld");
}
}
les dejo el link del proyecto de prueba
SpringLog