log4j.properties详解

from:http://coderdream.iteye.com/blog/378077

两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:

  Logger.debug ( Object message ) ;
  Logger.info ( Object message ) ;
  Logger.warn ( Object message ) ;
  Logger.error ( Object message ) ;

 

示例2~示例8

 

【示例2】 输出为文本文件或HTML文件

Porperties代码 复制代码
  1. #设置级别:   
  2. log4j.rootLogger=debug,appender1   
  3.   
  4. #输出到文件(这里默认为追加方式)   
  5. log4j.appender.appender1=org.apache.log4j.FileAppender   
  6. #设置文件输出路径   
  7. #【1】文本文件   
  8. #log4j.appender.appender1.File=c:/Log4JDemo02.log   
  9. #【2】HTML文件   
  10. log4j.appender.appender1.File=c:/Log4JDemo02.html   
  11. #设置文件输出样式   
  12. #log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout   
  13. log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout  
#设置级别:
log4j.rootLogger=debug,appender1

#输出到文件(这里默认为追加方式)
log4j.appender.appender1=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
#log4j.appender.appender1.File=c:/Log4JDemo02.log
#【2】HTML文件
log4j.appender.appender1.File=c:/Log4JDemo02.html
#设置文件输出样式
#log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

 

示例3】 输出为文本文件或HTML文件

Properties代码 复制代码
  1. #设置级别和多个目的地   
  2. log4j.rootLogger=debug,appender1,appender2   
  3.   
  4. #输出到控制台   
  5. log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
  6. #设置输出样式   
  7. log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout   
  8.   
  9. #输出到文件(这里默认为追加方式)   
  10. log4j.appender.appender2=org.apache.log4j.FileAppender   
  11. #设置文件输出路径   
  12. #【1】文本文件   
  13. #log4j.appender.appender2.File=c:/Log4JDemo02.log   
  14. #【2】HTML文件   
  15. log4j.appender.appender2.File=c:/Log4JDemo02.html   
  16. #设置文件输出样式   
  17. #log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout   
  18. log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout  
#设置级别和多个目的地
log4j.rootLogger=debug,appender1,appender2

#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

#输出到文件(这里默认为追加方式)
log4j.appender.appender2=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
#log4j.appender.appender2.File=c:/Log4JDemo02.log
#【2】HTML文件
log4j.appender.appender2.File=c:/Log4JDemo02.html
#设置文件输出样式
#log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout
log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout

 

【示例4】 SimpleLayout样式

Properties代码 复制代码
  1. #设置级别和目的地   
  2. log4j.rootLogger=debug,appender1   
  3.   
  4. #输出到控制台   
  5. log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
  6. #设置输出样式   
  7. log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout  
#设置级别和目的地
log4j.rootLogger=debug,appender1

#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout

  输出结果:

控制台代码 复制代码
  1. DEBUG - This is debug message.   
  2. INFO - This is info message.   
  3. ERROR - This is error message.  
DEBUG - This is debug message.
INFO - This is info message.
ERROR - This is error message.

 

【示例5】 自定义样式

Java代码 复制代码
  1. #设置级别和目的地   
  2. log4j.rootLogger=debug,appender1   
  3.   
  4. #输出到控制台   
  5. log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
  6. #设置输出样式   
  7. log4j.appender.appender1.layout=org.apache.log4j.PatternLayout   
  8. #自定义样式   
  9. # %r 时间 0  
  10. # %t 方法名 main   
  11. # %p 优先级 DEBUG/INFO/ERROR   
  12. # %c 所属类的全名(包括包名)   
  13. # %l 发生的位置,在某个类的某行   
  14. # %m 输出代码中指定的讯息,如log(message)中的message   
  15. # %n 输出一个换行   
  16.   
  17. log4j.appender.appender1.layout.ConversionPattern=%r [%t] [%p] - %c -%l -%m%n  
#设置级别和目的地
log4j.rootLogger=debug,appender1

#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行

log4j.appender.appender1.layout.ConversionPattern=%r [%t] [%p] - %c -%l -%m%n

输出结果:

控制台代码 复制代码
  1. 0 [main] [DEBUG] - com.coderdream.log4j.HelloLog4j    
  2. -com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:16) -This is debug message.   
  3. 31 [main] [INFO] - com.coderdream.log4j.HelloLog4j    
  4. -com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:18) -This is info message.   
  5. 31 [main] [ERROR] - com.coderdream.log4j.HelloLog4j    
  6. -com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:20) -This is error message.  
0 [main] [DEBUG] - com.coderdream.log4j.HelloLog4j 
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:16) -This is debug message.
31 [main] [INFO] - com.coderdream.log4j.HelloLog4j 
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:18) -This is info message.
31 [main] [ERROR] - com.coderdream.log4j.HelloLog4j 
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:20) -This is error message.

 

【示例6】 多目的地、自定义样式

Properties代码 复制代码
  1. #设置级别和目的地   
  2. log4j.rootLogger=debug,appender1,appender2   
  3.   
  4. #输出到控制台   
  5. log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
  6. #设置输出样式   
  7. log4j.appender.appender1.layout=org.apache.log4j.PatternLayout   
  8. #自定义样式   
  9. # %r 时间 0  
  10. # %t 方法名 main   
  11. # %p 优先级 DEBUG/INFO/ERROR   
  12. # %c 所属类的全名(包括包名)   
  13. # %l 发生的位置,在某个类的某行   
  14. # %m 输出代码中指定的讯息,如log(message)中的message   
  15. # %n 输出一个换行符号   
  16. log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n   
  17.   
  18. #输出到文件(这里默认为追加方式)   
  19. log4j.appender.appender2=org.apache.log4j.FileAppender   
  20. #设置文件输出路径   
  21. #【1】文本文件   
  22. log4j.appender.appender2.File=c:/Log4JDemo06.log   
  23. #设置文件输出样式   
  24. log4j.appender.appender2.layout=org.apache.log4j.PatternLayout   
  25. log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n  
#设置级别和目的地
log4j.rootLogger=debug,appender1,appender2

#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行符号
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n

#输出到文件(这里默认为追加方式)
log4j.appender.appender2=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
log4j.appender.appender2.File=c:/Log4JDemo06.log
#设置文件输出样式
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n

 

【示例7】 【企业应用】设置 特定包的级别和目的地

先增加一个包,新建一个类:

Java代码 复制代码
  1. package com.coderdream.log4jDao;   
  2.   
  3. import org.apache.log4j.Logger;   
  4.   
  5. public class HelloDao {   
  6.     private static Logger logger = Logger.getLogger(HelloDao.class);   
  7.   
  8.     /**  
  9.      * @param args  
  10.      */  
  11.     public static void main(String[] args) {   
  12.         // 记录debug级别的信息   
  13.         logger.debug("This is debug message from Dao.");   
  14.         // 记录info级别的信息   
  15.         logger.info("This is info message from Dao.");   
  16.         // 记录error级别的信息   
  17.         logger.error("This is error message from Dao.");   
  18.     }   
  19. }  
package com.coderdream.log4jDao;

import org.apache.log4j.Logger;

public class HelloDao {
	private static Logger logger = Logger.getLogger(HelloDao.class);

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 记录debug级别的信息
		logger.debug("This is debug message from Dao.");
		// 记录info级别的信息
		logger.info("This is info message from Dao.");
		// 记录error级别的信息
		logger.error("This is error message from Dao.");
	}
}

      如果这个类作为基类,如J2EE中的BaseDao、BaseAction、BaseService等等,则我们可以将各层的日志信息分类输出到各个文件。

 

Properties代码 复制代码
  1. #省略根,只设置特定包的级别和目的地   
  2. log4j.logger.com.coderdream.log4j=debug,appender1   
  3. log4j.logger.com.coderdream.log4jDao=info,appender1,appender2   
  4.   
  5. #输出到控制台   
  6. log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
  7. #设置输出样式   
  8. log4j.appender.appender1.layout=org.apache.log4j.PatternLayout   
  9. #自定义样式   
  10. # %r 时间 0  
  11. # %t 方法名 main   
  12. # %p 优先级 DEBUG/INFO/ERROR   
  13. # %c 所属类的全名(包括包名)   
  14. # %l 发生的位置,在某个类的某行   
  15. # %m 输出代码中指定的讯息,如log(message)中的message   
  16. # %n 输出一个换行符号   
  17. log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n   
  18.   
  19. #输出到文件(这里默认为追加方式)   
  20. log4j.appender.appender2=org.apache.log4j.FileAppender   
  21. #设置文件输出路径   
  22. #【1】文本文件   
  23. log4j.appender.appender2.File=c:/Log4JDemo07_Dao.log   
  24. #设置文件输出样式   
  25. log4j.appender.appender2.layout=org.apache.log4j.PatternLayout   
  26. log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n  
#省略根,只设置特定包的级别和目的地
log4j.logger.com.coderdream.log4j=debug,appender1
log4j.logger.com.coderdream.log4jDao=info,appender1,appender2

#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行符号
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n

#输出到文件(这里默认为追加方式)
log4j.appender.appender2=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
log4j.appender.appender2.File=c:/Log4JDemo07_Dao.log
#设置文件输出样式
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n

 

【示例8】 log4j.xml的配置方式

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
  3.   
  4. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
  5.   
  6.     <appender name="appender1"  
  7.         class="org.apache.log4j.RollingFileAppender">  
  8.         <param name="File" value="logfile08.html" />  
  9.         <param name="MaxFileSize" value="1MB" />  
  10.         <param name="MaxBackupIndex" value="5" />  
  11.         <layout class="org.apache.log4j.HTMLLayout">  
  12.         </layout>  
  13.     </appender>  
  14.   
  15.     <root>  
  16.         <level value="debug" />  
  17.         <appender-ref ref="appender1" />  
  18.     </root>  
  19. </log4j:configuration>  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<appender name="appender1"
		class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="logfile08.html" />
		<param name="MaxFileSize" value="1MB" />
		<param name="MaxBackupIndex" value="5" />
		<layout class="org.apache.log4j.HTMLLayout">
		</layout>
	</appender>

	<root>
		<level value="debug" />
		<appender-ref ref="appender1" />
	</root>
</log4j:configuration>

 

为了提高效率,我们可以在写日志前增加判断:

Java代码 复制代码
  1. // 记录debug级别的信息   
  2. if (logger.isDebugEnabled()) {   
  3.     logger.debug("This is debug message from Dao.");   
  4. }   
  5.   
  6. // 记录info级别的信息   
  7. if (logger.isInfoEnabled()) {   
  8.     logger.info("This is info message from Dao.");   
  9. }   
  10.   
  11. // 记录error级别的信息   
  12. logger.error("This is error message from Dao.");  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值