<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小菜毛毛技術分享

    與大家共同成長

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

    log4j入門與提高-實例講解

    關鍵字: log4j,輸出到控制臺,日志文件,日志文件分天,日志郵件

    官方網站:http://logging.apache.org/log4j/index.html:

     

    廢話不多說,切入主題,下面都是基礎的應用。后面我會寫有關擴展的應用,使它更聽話。

     

    讀取配置文件

    Java代碼 復制代碼
    1. package org.cjj.log4j.config.xml;   
    2.   
    3. import java.net.URL;   
    4.   
    5. import org.apache.log4j.xml.DOMConfigurator;   
    6.   
    7. /**  
    8.  * 單實例 讀取log4j配置文件,初始化log4j  
    9.  *   
    10.  * @author cjj  
    11.  *   
    12.  */  
    13. public class Log4jXMLConfig   
    14. {   
    15.     private static Log4jXMLConfig instance;   
    16.   
    17.     public static synchronized Log4jXMLConfig initia()   
    18.     {   
    19.         if (instance == null)   
    20.         {   
    21.             return new Log4jXMLConfig();   
    22.         }   
    23.         return instance;   
    24.     }   
    25.   
    26.     private Log4jXMLConfig()   
    27.     {   
    28.         final URL url = Log4jXMLConfig.class.getResource("log4j.xml");   
    29.         DOMConfigurator.configure(url);   
    30.     }   
    31. }  

     

    配置文件

    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.     <!-- ========================== 自定義輸出格式說明================================ -->  
    6.     <!-- %p 輸出優(yōu)先級,即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL -->  
    7.     <!-- #%r 輸出自應用啟動到輸出該log信息耗費的毫秒數(shù)  -->  
    8.     <!-- #%c 輸出所屬的類目,通常就是所在類的全名 -->  
    9.     <!-- #%t 輸出產生該日志事件的線程名 -->  
    10.     <!-- #%n 輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n” -->  
    11.     <!-- #%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921  -->  
    12.     <!-- #%l 輸出日志事件的發(fā)生位置,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)。舉例:Testlog4.main(TestLog4.java:10)  -->  
    13.     <!-- ========================================================================== -->  
    14.        
    15.     <!-- ========================== 輸出方式說明================================ -->  
    16.     <!-- Log4j提供的appender有以下幾種:  -->  
    17.     <!-- org.apache.log4j.ConsoleAppender(控制臺),  -->  
    18.     <!-- org.apache.log4j.FileAppender(文件),  -->  
    19.     <!-- org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件), -->  
    20.     <!-- org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),  -->  
    21.     <!-- org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)   -->  
    22. <!-- ========================================================================== -->  
    23. <!-- 輸出到日志文件  -->  
    24.     <appender name="filelog_appender"  
    25.         class="org.apache.log4j.RollingFileAppender">  
    26.         <!-- 設置File參數(shù):日志輸出文件名 -->  
    27.         <param name="File" value="log/testlog4jxml_all.log" />  
    28.         <!-- 設置是否在重新啟動服務時,在原有日志的基礎添加新日志 -->  
    29.         <param name="Append" value="true" />  
    30.         <!-- 設置文件大小 -->  
    31.         <param name="MaxFileSize" value="1MB" />  
    32.         <!-- 設置文件備份 -->  
    33.         <param name="MaxBackupIndex" value="10000" />  
    34.         <!-- 設置輸出文件項目和格式 -->  
    35.         <layout class="org.apache.log4j.PatternLayout">  
    36.             <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p (%c:%L)- %m%n" />  
    37.         </layout>  
    38.     </appender>  
    39.   
    40. <!-- 輸出到日志文件 每天一個日志  -->  
    41.     <appender name="filelog_daily" class="org.apache.log4j.DailyRollingFileAppender">      
    42.         <param name="File" value="log/daily.log" />      
    43.         <param name="DatePattern" value="'daily.'yyyy-MM-dd'.log'" />      
    44.         <layout class="org.apache.log4j.PatternLayout">      
    45.             <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] (%c:%L) - %m%n" />      
    46.         </layout>      
    47.     </appender>    
    48.   
    49. <!-- 輸出到控制臺中 -->  
    50.     <appender name="console" class="org.apache.log4j.ConsoleAppender">  
    51.         <layout class="org.apache.log4j.PatternLayout">  
    52.             <param name="ConversionPattern"  
    53.                 value="%d{yyyy-MM-dd HH:mm:ss} %-5p: %m%n" />  
    54.             <!-- "%-5p: [%t] [%c{3}.%M(%L)] | %m%n" -->  
    55.         </layout>  
    56.     </appender>  
    57.   
    58. <appender name="EMAIL_QQ" class="org.apache.log4j.net.SMTPAppender">  
    59.         <param name="Threshold" value="INFO"/>  
    60.         <param name="BufferSize" value="128" />  
    61.         <param name="SMTPHost" value="smtp.qq.com" />  
    62.         <param name="SMTPUsername" value="cjjvictory" />  
    63.         <param name="SMTPPassword" value="***" />  
    64.         <param name="From" value="cjjvictory@qq.com" />  
    65.         <param name="To" value="cjjvictory@gmail.com" />  
    66.         <param name="Subject" value="測試郵件發(fā)送" />  
    67.         <param name="LocationInfo" value="true" />  
    68.         <param name="SMTPDebug" value="true" />  
    69.         <layout class="org.cjj.log4j.extend.PatternLayout_zh">  
    70.             <param name="ConversionPattern" value="[%d{ISO8601}] %-5p %c %m%n"/>  
    71.         </layout>  
    72.     </appender>  
    73.   
    74. <!--- 異步測試,當日志達到緩存區(qū)大小時候執(zhí)行所包的appender -->  
    75.     <appender name="ASYNC_test" class="org.apache.log4j.AsyncAppender">      
    76.      <param name="BufferSize" value="10"/>      
    77.      <appender-ref ref="EMAIL_QQ"/>  
    78.    </appender>  
    79.   
    80.  <!-- 設置包限制輸出的通道 -->  
    81.     <category name="org.cjj" additivity="false">  
    82.                <!-- 日志輸出級別,起碼可以有5個級別,可以擴展自己的級別,郵件發(fā)送必須是ERROR級別不好用,所以最后自己擴展一個郵件發(fā)送級別 -->  
    83.         <level value="ERROR" />  
    84.         <appender-ref ref="filelog_daily" />  
    85.         <appender-ref ref="daily_appender" />  
    86.         <appender-ref ref="console" />  
    87.         <appender-ref ref="ASYNC_test" />  
    88.  </category>  
    89.   
    90. </log4j:configuration>  

     

    郵件亂碼問題:

     

    郵件發(fā)送的布局采用了org.cjj.log4j.extend.PatternLayout_zh,因為原來的org.apache.log4j.PatternLayout會有亂碼,所以重寫一個方法既可。可能方法有點野蠻,所以那位有好的方法還請指教。

     

    Java代碼 復制代碼
    1. package org.cjj.log4j.extend;   
    2.   
    3. import org.apache.log4j.PatternLayout;   
    4.   
    5. public class PatternLayout_zh extends PatternLayout   
    6. {   
    7.     @Override  
    8.     public String getContentType()   
    9.     {   
    10.         return "text/html;charset=GBK";   
    11.     }   
    12. }  
     
    posted on 2009-08-06 08:41 小菜毛毛 閱讀(529) 評論(0)  編輯  收藏 所屬分類: LOG4J

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲欧美成aⅴ人在线观看| 蜜桃精品免费久久久久影院| 久久国产免费直播| 国产精品va无码免费麻豆| 亚洲AV无码乱码在线观看富二代| 伊人久久精品亚洲午夜| 久久精品国产亚洲精品2020| 看全免费的一级毛片| 国产免费爽爽视频免费可以看| 亚洲视频在线免费观看| 亚洲国产精品一区二区成人片国内| 亚洲一区二区三区亚瑟| 久久久久久国产a免费观看不卡 | 亚洲成a人片在线看| 乱爱性全过程免费视频| 亚洲Aⅴ无码一区二区二三区软件| 免费无遮挡无码视频在线观看| 免费h黄肉动漫在线观看| 国产亚洲成在线播放va| 18禁止看的免费污网站| 免费在线观看一级片| 亚洲高清免费在线观看| 精品熟女少妇av免费久久| 国产亚洲精久久久久久无码AV| 男女午夜24式免费视频| 亚洲无成人网77777| 日本高清免费aaaaa大片视频| 亚洲欧洲无卡二区视頻| 国产成人麻豆亚洲综合无码精品| 久久免费动漫品精老司机| 久久夜色精品国产亚洲AV动态图 | 久久久久无码专区亚洲av| av成人免费电影| 免费视频淫片aa毛片| 亚洲高清在线播放| 免费看一级高潮毛片| 久久久久亚洲爆乳少妇无 | 又色又污又黄无遮挡的免费视| 国产亚洲福利精品一区二区| 中文字幕免费在线观看| 亚洲中文久久精品无码|