`

转:log4j xml 配置

阅读更多

http://houwen.iteye.com/blog/446721

http://zhangxiang390.iteye.com/blog/258455 
log4j.xml 配置 

Java代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
  3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
  4.       
  5.     <!-- 类似定义logger节点打印具体类,或某包中的指定级别以上日志 -->  
  6.     <logger name="common.TestLog4j">  
  7.         <level value="debug" />  
  8.         [color=red]<appender-ref ref="console" />[/color]  
  9.     </logger>  
  10.           
  11.          <!-- 和logger节点功能差不多,打印具体类,或某包中的指定级别以上日志  
  12.         <category name="common.TestLog4j">  
  13.              <priority value="warn"/>  
  14.         </category>  
  15.          -->  
  16.   
  17.   
  18.     <appender name="console" class="org.apache.log4j.ConsoleAppender">  
  19.         <!--param name="Threshold" value="INFO"  为打印logger 去掉Threshold参数配置 /-->  
  20.         <layout class="org.apache.log4j.PatternLayout">  
  21.             <param name="ConversionPattern"  
  22.                 value="【AppLog】 %d{ABSOLUTE} %-5p %m%n" />  
  23.         </layout>  
  24.     </appender>  
  25.   
  26.     <appender name="file"  
  27.         class="org.apache.log4j.DailyRollingFileAppender">  
  28.         <param name="File" value="log.txt" />  
  29.         <!--日志过滤门槛,记录warn以上级别日志  -->  
  30.         <param name="Threshold" value="WARN" />  
  31.         <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />  
  32.         <layout class="org.apache.log4j.PatternLayout">  
  33.             <param name="ConversionPattern" value="%d %-5p %m %n" />  
  34.         </layout>  
  35.     </appender>  
  36.               
  37.     <root>  
  38.         <!-- root 整体设置过滤优先级,如果appender 没有设置filter或Threshold 默认采用该级别,定义的logger不在其中(即不会被过滤掉)。 -->  
  39.         <priority value="INFO" />  
  40.         <appender-ref ref="console" />  
  41.         <appender-ref ref="file" />  
  42.     </root>  
  43. </log4j:configuration>  


本加红色部分参数,logger 节点配置打印在console appender中。 
导致ERROR [STDERR] log4j:ERROR Attempted to append to closed appender named [CONSOLE]错误,具体原因不太清楚。去掉该配置后达到自己的要求。 
http://brighter.iteye.com/blog/342162 

下面是log4j.properties 简单配置 

Java代码  收藏代码
  1. # Global logging configuration  
  2. log4j.rootLogger=error,stdout,fileout  
  3.   
  4. #调试使用,配置打印common.log具体类,或包内日志。  
  5. #log4j.logger 与 log4j.category为前缀,common包名,common.TestLog4j类。  
  6. #log4j.logger.common=DEBUG  
  7. #log4j.category.common.TestLog4j=debug  
  8.   
  9. # Console output...  
  10. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  11. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  12. log4j.appender.stdout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n  
  13. #File output...  
  14. log4j.appender.fileout=org.apache.log4j.DailyRollingFileAppender  
  15. log4j.appender.fileout.file=c:/log.txt   
  16. log4j.appender.fileout.DatePattern='.'yyyy-MM-dd'.log'  
  17. log4j.appender.fileout.layout=org.apache.log4j.PatternLayout  
  18. log4j.appender.fileout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n  
  19. log4j.appender.fileout.Threshold=INFO  



Java代码  收藏代码
  1.    
  2. 测试参考java代码 log4j配置文件要放在资源根目录下,否则测试结果与预计相悖。  
  3. public class TestLog4j {  
  4.     private static Logger logger  =  Logger.getLogger(TestLog4j.class );  
  5.     public   static   void  main(String[] args)  {  
  6.         PropertyConfigurator.configure( "D:/workspace/JP/test/log4j.properties" );  
  7.         logger.fatal( " fatal " );  
  8.         logger.error( " error " );  
  9.         logger.warn( " warn " );  
  10.         logger.info( " info " );  
  11.         logger.debug( " debug " );  
  12.           
  13.     }  
  14. }  


(1). 输出方式appender一般有5种: 

             org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志) 
             org.apache.log4j.ConsoleAppender (控制台)  
             org.apache.log4j.FileAppender (文件) 
             org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件) 
             org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) 



(2). 日记记录的优先级priority,优先级由高到低分为 
            OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。 
            Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。 



(3). 格式说明layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出): 
                %c        输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName) 
                %d       输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss} 
                %l        输出日志事件发生位置,包括类目名、发生线程,在代码中的行数 
                %n       换行符 
                %m      输出代码指定信息,如info(“message”),输出message 
                %p       输出优先级,即 FATAL ,ERROR 等 
                %r        输出从启动到显示该log信息所耗费的毫秒数 
                %t        输出产生该日志事件的线程名 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics