Log4J.xml 模板

在編碼中我們會經常使用logj進行某個地方監控,這時候就需要用到log4j了.log4j.xml的模板如下

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">  


    <!--輸出方式:輸出到控制檯-->  
    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">  
    <!-- 
     設置通道名稱和輸出方式,其中輸出方式appender有5種,分別爲
      org.apache.log4j.RollingFileAppender    
     org.apache.log4j.ConsoleAppender (控制檯)
     org.apache.log4j.FileAppender (文件)   
     org.apache.log4j.DailyRollingFileAppender (每天產生一個日誌文件)   
     org.apache.log4j.WriterAppender (將日誌信息以流格式發送到指定地方)
     -->  
    <param name="Target" value="System.out"/>  
    <param name="Threshold" value="INFO"/>  
    <!--
      Threshold是個全局的過濾器,他將把低於所設置的level的信息過濾不顯示出來
     -->  

    <!-- 設置日誌輸出的格式-->  
    <layout class="org.apache.log4j.PatternLayout">  
    
    <!-- 
      參數都以%開始後面不同的參數代表不同的格式化信息:   
       %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  輸出產生該日誌事件的線程名-->  

      <!-- The default pattern: Date Priority [Category] Message\n -->
      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>  
    </layout>  
  </appender>  

  <!--輸出方式是:每天一個日誌文件-->  
  <!--設置通道名稱是:file,輸出方式DailyRollingFileAppender-->
  <appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">  

    <!--日誌文件路徑和文件名稱 -->  
    <!-- 加../在logs,加/在C盤,不加在bin目錄 -->
    <!-- 
      如果在加載時設置了變量System.setProperty("WebApp", appRoot),
       可在此取出來${WebApp} -->
    <param name="File" value="../logs/mylog.log"/>  
    
    <!-- 設置是否在重新啓動服務時,在原有日誌的基礎添加新日誌 -->  
    <param name="Append" value="true"/>  
  
    <!-- Rollover at midnight each day -->  
    <!-- e.g. mylog.log.2009-11-25.log -->
    <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>  

    <!-- Rollover at the top of each hour   
    <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'"/>  
    -->  

    <layout class="org.apache.log4j.PatternLayout">  

      <!-- 
        The default pattern: Date Priority [Category] Message\n 
      -->  
      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
  
      <!-- 
        The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n -->
      <!--   
      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>  
       -->  
    </layout>       
  </appender>  
       
  <appender name="ERROR_LOG" class="org.apache.log4j.DailyRollingFileAppender">  
      <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>  
      <param name="File" value="error.log"/>  
      <param name="Append" value="true"/>  
      <!-- 指定日誌輸出級別 -->
      <param name="Threshold" value="INFO"/>  
      <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>  
      <layout class="org.apache.log4j.PatternLayout">  
      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>  
      </layout>  
   </appender>       
     

    <!--
        level:是日記記錄的優先級,優先級由高到低分爲    
          OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。   
          Log4j建議只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG這四個級別。
     -->  

    <!-- 指定logger的設置,additivity指示是否疊加輸出log,如果是false,
      在DsErrorLog logger中日誌不會被其它logger滿足條件的logger(比如root)   
     輸出   
    -->    
    <!-- 將名稱爲DSErrorLog的logger,輸出到“EEROR_LOG”的appender   
         所謂logger的名字也就是,在定義Logger時,構造函數的參數   
          Logger log = Logger.getLogger("DSErrorLog");   
    -->  
    <logger name="DSErrorLog" additivity="false">  
        <level class="org.apache.log4j.Level" value="DEBUG"/>  
        <appender-ref ref="ERROR_LOG"/>  
    </logger>  
           
   <!--
      輸出指定類包中的日誌,比如想輸出   
       Hibernate運行中生成的SQL語句,可作如下設置   
    -->  
   <category name="org.hibernate.SQL">  
     <priority value="DEBUG"/>  
      <!--   
          如果指定一個appender,這些log將被輸出到指定的appender   
          如:<appender-ref ref="myFile"/>     
          否則將作用於所有的appender   
       -->  
   </category>  
               
     <!-- 
       根默認會自動構建一個 root,輸出INFO級別的日誌到控制檯,供logger繼承
      -->       
     <root>       
         <priority value ="INFO"/>       
         <appender-ref ref="myConsole"/>       
         <appender-ref ref="myFile"/>          
    </root>          
</log4j:configuration>  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章