xml格式的log4j配置文件需要使用org.apache.log4j.html.DOMConfigurator.configure()方法来
读入。对xml文件的语法定义可以在log4j的发布包中找到:org/apache/log4j/xml/log4j.dtd。
Xml的一个配置文件:sample1.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
< log4j:configuration xmlns:log4j ='http://jakarta.apache.org/log4j/'>
<appender name ="STDOUT" class ="org.apache.log4j.ConsoleAppender" >
< layout class ="org.apache.log4j.PatternLayout" >
< param name ="ConversionPattern"
value ="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
</ layout >
</ appender >
< category name ="org.apache.log4j.xml" >
< priority value ="info" />
</ category >
< root >
< priority value ="debug" />
< appender-ref ref ="STDOUT" />
</ root >
</ log4j:configuration >
<! DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
< log4j:configuration xmlns:log4j ='http://jakarta.apache.org/log4j/'>
<appender name ="STDOUT" class ="org.apache.log4j.ConsoleAppender" >
< layout class ="org.apache.log4j.PatternLayout" >
< param name ="ConversionPattern"
value ="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
</ layout >
</ appender >
< category name ="org.apache.log4j.xml" >
< priority value ="info" />
</ category >
< root >
< priority value ="debug" />
< appender-ref ref ="STDOUT" />
</ root >
</ log4j:configuration >
说明:
①xml配置文件的头部包括两个部分:xml声明和dtd声明。头部的格式如下:




②log4j:configuration (root element)
xmlns:log4j [#FIXED attribute]: 定义log4j的名字空间,取定值"http://jakarta.apache.org/log4j/"
appender [* child] : 一个appender子元素定义一个日志输出目的地
logger [* child] : 一个logger子元素定义一个日志写出器
root [? child] : root子元素定义了root logger
源代码:











































DOMConfigurator.configure(configFile);


}



static void sample() ...{

int i = -1;

Category root = Category.getRoot();

cat.debug("Message " + ++i);

cat.warn ("Message " + ++i);

cat.error("Message " + ++i);

Exception e = new Exception("Just testing");

cat.debug("Message " + ++i, e);

}

}


























执行后的效果:













