常用log4j配置

 

常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:

最简单的配置是只要取下面的log4j.properties文件中带下划线的四行就行,它完成日志输出到控制台。

一、log4j.properties

  1. ### 设置com.unmi域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 ##   
  2. log4j.category.com.unmi = ERROR,A1   
  3. log4j.category.com.unmi = INFO,A2    
  4.  
  5. ### 一般把上面两行写如下方式,统一控制日志输出,再用log4j.logger设置包独立的输出级别 ##   
  6. log4j.rootLogger = DEBUG,A1  
  7. log4j.logger.com.unmi.special = ERROR  
  8.  
  9. ### 设置输出地A1,为ConsoleAppender(控制台) ##    
  10. log4j.appender.A1 = org.apache.log4j.ConsoleAppender   
  11.  
  12. ### 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)##   
  13. log4j.appender.A1.layout = org.apache.log4j.PatternLayout   
  14.  
  15. ### 配置日志输出的格式##   
  16. log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n   
  17.  
  18. ### 设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)##   
  19. log4j.appender.A2 = org.apache.log4j.RollingFileAppender   
  20.  
  21. ### 文件位置##   
  22. log4j.appender.A2.File = E:/study/log4j/log.html   
  23.  
  24. ### 文件大小##   
  25. log4j.appender.A2.MaxFileSize = 500KB   
  26.   
  27. log4j.appender.A2.MaxBackupIndex = 1   
  28.  
  29. ##指定采用html方式输出   
  30. log4j.appender.A2.layout = org.apache.log4j.HTMLLayout    

二、log4j.xml

  1. <? xml   version = "1.0"   encoding = "GB2312"   ?>   
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">   
  3.   
  4. < log4j:configuration   xmlns:log4j  =  "http://jakarta.apache.org/log4j/"   >   
  5.   
  6.     < appender   name  =  "com.unmi.all"   class  =  "org.apache.log4j.RollingFileAppender"   >   
  7.      
  8.       <!-- 设置 appender Name:com.unmi.all和输出方式:org.apache.log4j.RollingFileAppender -->   
  9.        < param   name  =  "File"   value  =  "E:/study/log4j/all.output.log"  /  > <!-- 设置File参数:日志输出文件名 -->   
  10.        < param   name  =  "Append"   value  =  "false"  /  > <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->   
  11.        < param   name  =  "MaxBackupIndex"   value  =  "10"  /  >    
  12.        < layout   class  =  "org.apache.log4j.PatternLayout"   >   
  13.            < param   name  =  "ConversionPattern"   value  =  "%p (%c:%L)- %m%n"  /  > <!-- 设置输出文件项目和格式 -->   
  14.        </ layout   >   
  15.     </ appender   >   
  16.      
  17.     < appender   name  =  "com.unmi.xyz"   class  =  "org.apache.log4j.RollingFileAppender"   >   
  18.        < param   name  =  "File"   value  =  "E:/study/log4j/xyz.output.log"  /  >   
  19.        < param   name  =  "Append"   value  =  "true"  /  >   
  20.        < param   name  =  "MaxFileSize"   value  =  "10240"  /  >   <!-- 设置文件大小 -->   
  21.        < param   name  =  "MaxBackupIndex"   value  =  "10"  /  >    
  22.        < layout   class  =  "org.apache.log4j.PatternLayout"   >   
  23.            < param   name  =  "ConversionPattern"   value  =  "%p (%c:%L)- %m%n"  /  >   
  24.        </ layout   >   
  25.     </ appender   >   
  26.      
  27.     < logger   name  =  "unmi.log"   >   <!-- 设置包名限制,即unmi.log域及以下的日志均输出到下面对应的 appender 中 -->   
  28.        < level   value  =  "debug"  /  > <!-- 设置级别 -->   
  29.        < appender-ref   ref  =  "com.unmi.xyz"  /  > <!-- 与前面的配置的 appender name 相对应 -->   
  30.     </ logger   >   
  31.      
  32.     < root   >   <!-- 设置接收所有输出的 appender -->   
  33.        < appender-ref   ref  =  "com.unmi.all"  /  > <!-- 与前面的 appender name 相对应 -->   
  34.     </ root   >   
  35.   
  36. </ log4j:configuration >    


三、配置文件加载方法:

对于properties文件,一般都不用手工去加载,由Log4j第一次初始化时自动就加载了

  1. import   org.apache.log4j.Logger;  
  2. import   org.apache.log4j.PropertyConfigurator;  
  3. import   org.apache.log4j.xml.DOMConfigurator;  
  4.   
  5. public   class  Log4jApp {  
  6.    public   static   void  main(String[] args) {  
  7.         DOMConfigurator.configure("E:/study/log4j/log4j.xml" );  //加载.xml文件   
  8.        //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加载.properties文件   
  9.   
  10.         Logger log = Logger.getLogger("com.unmi.test" );  
  11.        log.info("测试" );  
  12.     }  
  13. }   

四、项目使用log4j

在 web应用中,可以将配置文件的加载放在一个单独的servlet中,并在web.xml中配置该servlet在应用启动时候加载。对于在多人项目中, 可以给每一个人设置一个输出通道,这样在每个人在构建Logger时,用自己的域名称,让调试信息输出到自己的log文件中。


五、常用输出格式

%c    列出logger名字空间的全称,如加上{<层数>}表示出从最内层算起的指定层数的名字空间
%X   按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。
%p  日志信息级别
%d    %d{<日期格式>}:日志信息产生时间,使用ISO8601定义的日期格式
%C    日志信息所在地(全限类名)
%m    产生的日志具体信息
%n     输出日志信息换行
%F  显示调用logger的源文件名
%l      输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
%L     显示调用logger的代码行
%M    显示调用logger的方法名
%r      显示从程序启动时到记录该条日志时已经经过的毫秒数
%t      输出产生该日志事件的线程名
%%  显示一个百分号


补充:在配置文件中可以用变量用于引用系统属性,如

log4j.appender.A2.File = ${user.home}/${app.name}.log
如 果你在启动程序时加了 -Dapp.name=UnmiLog4jTest  JVM 参数,或者在初始化 Log4j 之前,往 System.getProperties() 中 put 了 "app.name" 属性为 UnmiLog4jTest,那么就会输出日志文件到用户主目录/UnmiLog4jTest.log。user.home 属性一般都存在于系统属性中,你也可以在程序中改变它。

如果在 web.xml 中初始化 log4j,你可以在 log4j 的配置文件中更轻松的取到 web 应用的绝对路径。

 

http://www.blogjava.net/Unmi/archive/2006/03/24/124075.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值