Log4j webapp sample
From linuxProblems
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