Log4j webapp sample

From linuxProblems

Jump to: navigation, search

Contents

log4j.properties

Set up WEB-INF/classes/log4j.properties

[quick@localhost classes]$ cat /usr/share/tomcat6/webapps/sample/WEB-INF/classes/log4j.properties 
# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.base}/logs/sample.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

log4j.jar

Download log4j.jar to WEB-INF/lib

[quick@localhost lib]$ ls -l /usr/share/tomcat6/webapps/sample/WEB-INF/lib/log4j-1.2.17.jar 
-rw-r--r-- 1 root root 489883 Jul  7 15:23 /usr/share/tomcat6/webapps/sample/WEB-INF/lib/log4j-1.2.17.jar

Test.java

Copy the following code to WEB-INF/classes/test/Test.java

[quick@localhost test]$ cat /usr/share/tomcat6/webapps/sample/WEB-INF/classes/test/Test.java
package test;

import java.io.*;

import javax.servlet.http.*;
import javax.servlet.*;
import org.apache.log4j.Logger;


public class Test extends HttpServlet {

        static Logger log = Logger.getLogger(Test.class);

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

                PrintWriter out = res.getWriter();

                log.debug("Here is some DEBUG");
                log.info("Here is some INFO");
                log.warn("Here is some WARN");
                log.error("Here is some ERROR");
                log.fatal("Here is some FATAL");

                out.println("Hello, world!");
                out.close();
        }
}

Compile Test.java

Compile the class

[quick@localhost test]$ javac -cp /usr/share/java/tomcat6-servlet-api.jar:../lib/log4j-1.2.17.jar test/Test.java

web.xml

Copy this to WEB-INF/web.xml

[quick@localhost WEB-INF]$ cat /usr/share/tomcat6/webapps/sample/WEB-INF/web.xml 
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <display-name>log4j Test Application</display-name>
    <description>
	This is a simple web application to test log4j
    </description>

   <servlet>
    <servlet-name>Test</servlet-name>
    <servlet-class>test.Test</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>
</web-app>

Test the page

Restart tomcat/or reload the app, and make a request to it

[quick@localhost tmp]$ wget -q http://localhost:8080/sample/test -O -
Hello, world!

Check the log

Now check the log is created and logging.

[quick@localhost logs]$ tail /usr/share/tomcat6/logs/sample.log
19:08:14,217 DEBUG Test:21 - Here is some DEBUG
19:08:14,217  INFO Test:22 - Here is some INFO
19:08:14,217  WARN Test:23 - Here is some WARN
19:08:14,217 ERROR Test:24 - Here is some ERROR
19:08:14,218 FATAL Test:25 - Here is some FATAL