Using Log4j with JBoss 6

To be honest I'm not a big fan of the release 6 of the application server. One of the major complaints is the logging area, which departed from log4j and switched to a native logging implementation which is however poorly documented. In this short tutorial we will show how to use log4j on JBoss AS 6 to produce custom application logging.

 

 

 

In order to configure your application to use log4j on JBoss 6 you have to follow this schema:

 

Place log4j.xml file in a place which is visible to the application class-path. In a Web application for example, place the log4j.xml file into the "src" folder so that it will be moved into the WEB-INF/classes of your Web application.

The following file configures two appenders, a CONSOLE appender and a FILE appender which rolls logs into ${jboss.server.home.dir}/log/application.log:


<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
 debug="false">
   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />
      </layout>
   </appender>
   <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
     <param name="File" value="${jboss.server.home.dir}/log/application.log" />
     <param name="MaxFileSize" value="1MB" />
     <param name="MaxBackupIndex" value="100" />


     <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />
     </layout>
   </appender>


   <root>

       <priority value="info" />
       <appender-ref ref="CONSOLE" />
       <appender-ref ref="FILE" />
     </root>

</log4j:configuration>

Place log4j.jar library into the WEB-INF/lib (or into the EAR's "lib" folder). This step is essential otherwise JBoss 6 will revert to its native logging implementation.

This is a sample Eclipse Project view which uses log4j:

log4j jboss 6 tutorial

Follow us on Twitter