csdn上有很多关于log4j的例子和教程,有的写的挺好的,但为了巩固知识,自己也写一份吧。 
  
我对log4j的要求不是很高,主要有两个用途 
  
一) web应用程序中如何使用log4j和common-logging 包; 
二) 普通的java应用程序如何使用log4j和common-logging 包; 
  
首先先总结简单的,在普通java应用程序中如何使用log4j和common-logging 包 
  
步骤如下: 
1) 将 log4j.jar 和 common-logging.jar 两个包加入到环境变量或者CLASSPATH 
  
2)  写log4j.xml 文件,例如: 
   
<?xml version="1.0" encoding="UTF-8"> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
  
  
<appender name="file" class="org.apache.log4j.RollingFileAppender"> 
<param name="File" value="log.log"/> 
<layout class="org.apache.log4j.PatternLayout"> 
 <param name="ConVersionPattern" value="%d [%t] %p - %m%n"/> 
</layout> 
</appender> 
  
<logger name="com.log4j.test.test" additivity="false"> 
<level value="debug"/> 
<appender-ref ref="file"/> 
</logger> 
  
<root> 
<level value="info"/> 
<appender-ref ref="file"/> 
</root> 
  
</log4j:configuration> 
  
3) 程序中使用方法: 
package com.log4j.test; 
  
import org.apache.log4j.xml.DOMConfigurator; 
 import org.apache.commons.logging.*; 
  
  
 class ConfigLog4j {   public static void config()   {     DOMConfigurator.configure("config/log4j.xml");   } } public class TestLog4j {   private Log log =LogFactory.getLog(TestLog4j.class); 
  
  public TestLog4j() {     ConfigLog4j.config(); 
  
  } 
  
  public void testPrint1()   {     log.debug("debug test");     log.info("info test");     log.warn("warn test");     log.error("error test");   } 
  
  public static void main(String[] args)   {     TestLog4j test = new TestLog4j();     test.testPrint1();
    } 
  
} 
  
OK ! 这样就会按要求打印消息了。 
  
另附 log4j.dtd 
  
 log4j:configuration             |             +-- appender (name, class)             |     |             |     +-- param (name, value)             |     +-- layout (class)             |           |             |           +-- param (name, value)             +-- logger (name, additivity)             |     |             |     +-- level (class, value)             |     |     |             |     |     +-- param (name, value)             |     +-- appender-ref (ref)             +-- root                   |                   +-- param (name, class)                   +-- level                   |     |                   |     +-- param (name, value)                   +-- appender-ref (ref)  
  
  
输出格式定义: 
  
| %m | 
输出代码中指定的消息 |  
| %p | 
输出优先级 |  
| %r | 
输出自应用启动到输出该log信息耗费的毫秒数 |  
| %c | 
输出所属的类目,通常就是所在类的全名 |  
| %t | 
输出产生该日志事件的线程名 |  
| %n | 
输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” |  
| %d | 
输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 |  
| %l | 
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。一般使用了它就不需使用%c了。         |    
  
  
  
  
参考文献: 
  
  
   
 
  |