sábado, 23 de mayo de 2015

Log usando Spring y Log4j

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

    0 comentarios:

    Publicar un comentario