|  Home   |  About Us   |  Online Exam   |  Tech World   |  Jobs    | Member Login

Log4j

Simple Log4j configuration
Simple Log4j properties file
Log4j file appender
Log4j multiple appender example Log4j XML configuration

Log4j XML Configuration

We can also use XML file to configure log4j. In the previous example we saw how we can do this using the properties file, everything remains the same except that we use the XML configuration file here.

The following code shows the log4j.properties file we used in the previous example.

        log4j.rootLogger=DEBUG, CA
        log4j.appender.CA=org.apache.log4j.ConsoleAppender
        log4j.appender.CA.layout=org.apache.log4j.PatternLayout
        log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
        
The following code shows the corresponding log4j.xml file.

        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
        <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
        <appender name="CA" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />
        </layout>
        </appender>
        <root>
        <level value="debug" />
        <appender-ref ref="CA" />
        </root>
        </log4j:configuration>

To configure log4j using xml file we use DOMConfigurator.configure() method.

        package com.chennaisunday.helloworld;
        
        import org.apache.log4j.Logger;
        import org.apache.log4j.xml.DOMConfigurator;
        
        public class HelloWorld {
        
        static Logger logger = Logger.getLogger(HelloWorld.class);
        
        public static void main(String[] args) {
        DOMConfigurator.configure("log4j.xml");
        logger.debug("Sample debug message");
        logger.info("Sample info message");
        logger.warn("Sample warn message");
        logger.error("Sample error message");
        logger.fatal("Sample fatal message");
        }
        }

Here is the output of the above code.

        [main] DEBUG com.chennaisunday.helloworld.HelloWorld - Sample debug message
        [main] INFO com.chennaisunday.helloworld.HelloWorld - Sample info message
        [main] WARN com.chennaisunday.helloworld.HelloWorld - Sample warn message
        [main] ERROR com.chennaisunday.helloworld.HelloWorld - Sample error message
        [main] FATAL com.chennaisunday.helloworld.HelloWorld - Sample fatal message

In this example we will see how to create more than one appender using xml configuration file. This example is similar to the one we saw before using the properties file (example). So I will simply compare both.

The following code shows the log4j.properties file we used in the previous example.

        log4j.rootLogger=DEBUG, CA, FA
        
        #Console Appender
        log4j.appender.CA=org.apache.log4j.ConsoleAppender
        log4j.appender.CA.layout=org.apache.log4j.PatternLayout
        log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

        #File Appender
        log4j.appender.FA=org.apache.log4j.FileAppender
        log4j.appender.FA.File=sample.log
        log4j.appender.FA.layout=org.apache.log4j.PatternLayout
        log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

        # Set the logger level of File Appender to WARN
        log4j.appender.FA.Threshold = WARN

The following code shows the corresponding log4j.xml file.

        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
        <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
        <appender name="CA" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />
        </layout>
        </appender>
        <appender name="FA" class="org.apache.log4j.FileAppender">
        <param name="File" value="sample.log"/>
        <param name="Threshold" value="WARN"/>
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />
        </layout>
        </appender>
        <root>
        <level value="DEBUG" />
        <appender-ref ref="CA" />
        <appender-ref ref="FA" />
        </root>
        </log4j:configuration>

               Our Portals  :   www.righttimeproperty.com   |   www.sundaychennai.com   |   www.dorabuji.com