|
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>
|