log4j.xml 配置

  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.     <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">    
  6.         <layout class="org.apache.log4j.PatternLayout">    
  7.             <param name="ConversionPattern"      
  8.                 value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />    
  9.         </layout>    
  10.         <!--过滤器设置输出的级别-->    
  11.         <filter class="org.apache.log4j.varia.LevelRangeFilter">    
  12.             <param name="levelMin" value="debug" />    
  13.             <param name="levelMax" value="warn" />    
  14.             <param name="AcceptOnMatch" value="true" />    
  15.         </filter>    
  16.     </appender>    
  17.     
  18.     <appender name="myFile" class="org.apache.log4j.RollingFileAppender">      
  19.         <param name="File" value="D:/output.log" /><!-- 设置日志输出文件名 -->    
  20.         <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->    
  21.         <param name="Append" value="true" />    
  22.         <param name="MaxBackupIndex" value="10" />    
  23.         <layout class="org.apache.log4j.PatternLayout">    
  24.             <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />    
  25.         </layout>    
  26.     </appender>    
  27.       
  28.   
  29.     <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">    
  30.         <param name="File" value="E:/activex.log" />     
  31.         <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />     
  32.         <layout class="org.apache.log4j.PatternLayout">    
  33.          <param name="ConversionPattern"     
  34.             value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />    
  35.         </layout>     
  36.     </appender>    
  37.       
  38.   
  39.     <!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->    
  40.     <logger name="com.runway.bssp.activeXdemo" additivity="false">    
  41.         <priority value ="info"/>     
  42.         <appender-ref ref="activexAppender" />     
  43.     </logger>    
  44.     
  45.     <!-- 根logger的设置-->    
  46.     <root>    
  47.         <priority value ="debug"/>    
  48.         <appender-ref ref="myConsole"/>    
  49.         <appender-ref ref="myFile"/>      
  50.     </root>    
  51. </log4j:configuration>   
配置参数说明:
(1). 输出方式appender一般有5种:
[plain]  view plain copy
  1. org.apache.log4j.RollingFileAppender(滚动文件,自动记录最新日志)  
  2. org.apache.log4j.ConsoleAppender (控制台)    
  3. org.apache.log4j.FileAppender (文件)  
  4. org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)  
  5. org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)  
 
(2). 日记记录的优先级priority,优先级由高到低分为 
          
[plain]  view plain copy
  1. <span style="white-space:pre">  </span>    OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。  
  2.  <span style="white-space:pre"> </span>    Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。  


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


xml配置文件详解:

 
[plain]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
  3.             
  4. log4j:configuration (root element)   
  5.     xmlns:log4j [#FIXED attribute] : 定义log4j的名字空间,取定值"http://jakarta.apache.org/log4j/"  
  6.     appender [* child] : 一个appender子元素定义一个日志输出目的地  
  7.           
  8.         name [#REQUIRED attribute] : 定义appender的名字,以便被后文引用  
  9.         class [#REQUIRED attribute] : 定义appender对象所属的类的全名  
  10.         param [* child] : 创建appender对象时传递给类构造方法的参数  
  11.         layout [? child] : layout元素定义与某一个appender相联系的日志格式化器。  
  12.   
  13.   
  14.                 class [#REQUIRED attribute] : 定义layout对象所属的类的全名  
  15.                 param [* child] : 创建layout对象时传递给类构造方法的参数  
  16.   
  17.   
  18.     logger [* child] : 一个logger子元素定义一个日志写出器  
  19.   
  20.   
  21.         name [#REQUIRED attribute] : 定义logger的名字,以便被后文引用  
  22.         additivity [#ENUM attribute] : 取值为"true"(默认)或者"false",是否继承父logger的属性  
  23.         level [? child] : 定义该logger的日志级别  
  24.         appender-ref [* child] : 定义该logger的输出目的地  
  25.   
  26.   
  27.     root [? child] : root子元素定义了root logger   
  28.         param [* child] : 创建root logger对象时传递给类构造方法的参数  
  29.         level [? child] : 定义root logger的日志级别  
  30.             class [#IMPLIED attribute] : 定义level对象所属的类,默认情况下是"org.apache.log4j.Level类  
  31.             value [#REQUIRED attribute] : 为level对象赋值。可能的取值从小到大依次为"all"、"debug"、"info"、"warn"、"error"、"fatal"和"off"。当值为"off"                               时表示没有任何日志信息被输出  
  32.             param [* child] : 创建level对象时传递给类构造方法的参数  
  33.             appender-ref [* child] :元素引用一个appender元素的名字,为logger对象增加一个appender。  
  34.    



 
param元素没有子元素
在xml文件中配置appender和layout
创建不同的Appender对象或者不同的Layout对象要调用不同的构造方法。可以使用param子元素来设定不同的参数值。
创建ConsoleAppender对象
ConsoleAppender的构造方法不接受其它的参数。
 
[plain]  view plain copy
  1. <appender name="console.log" class="org.apache.log4j.ConsoleAppender">  
  2.   <layout ... >  
  3.     ... ...  
  4.   </layout>  
  5. </appender>  


          
 
创建FileAppender对象
可以为FileAppender类的构造方法传递两个参数:File表示日志文件名;Append表示如文件已存在,是否把日志追加到文件尾部,可能取值为"true"和"false"(默认)。
 
[plain]  view plain copy
  1. <appender name="file.log" class="org.apache.log4j.FileAppender">  
  2.   <param name="File" value="/tmp/log.txt" />  
  3.   <param name="Append" value="false" />  
  4.   <layout ... >  
  5.     ... ...  
  6.   </layout>  
  7. </appender>  


 
创建RollingFileAppender对象
除了File和Append以外,还可以为RollingFileAppender类的构造方法传递两个参数:MaxBackupIndex备份日志文件的个数(默认是1个);MaxFileSize表示日志文件允许的最大字节数(默认是10M)。
 
[plain]  view plain copy
  1. <appender name="rollingFile.log" class="org.apache.log4j.RollingFileAppender">  
  2.   <param name="File" value="/tmp/rollingLog.txt" />  
  3.   <param name="Append" value="false" />  
  4.   <param name="MaxBackupIndex" value="2" />  
  5.   <param name="MaxFileSize" value="1024" />  
  6.   <layout ... >  
  7.     ... ...  
  8.   </layout>  
  9. </appender>  


          
 
创建PatternLayout对象
可以为PatternLayout类的构造方法传递参数ConversionPattern。
 
[plain]  view plain copy
  1. <layout class="org.apache.log4j.PatternLayout>  
  2.   <param name="Conversion" value="%d [%t] %p - %m%n" />  
  3. </layout>  

猜你喜欢

转载自garyli.iteye.com/blog/1708605
今日推荐