<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ā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品国产自在久久 | 国产免费观看黄AV片| 亚洲成在人线在线播放无码| 亚洲男人在线无码视频| 热re99久久6国产精品免费| 亚洲AV日韩综合一区尤物| 亚洲国产精品专区在线观看| 久久国产乱子伦精品免费看| 亚洲综合一区国产精品| 国产午夜亚洲精品午夜鲁丝片| 国产成人免费午夜在线观看| 免费一级做a爰片久久毛片潮| 亚洲三级电影网址| 亚洲高清国产拍精品青青草原 | 一区二区三区免费电影| 亚洲国产成人久久99精品| 亚洲精品无码av天堂| 男女超爽刺激视频免费播放 | 91精品国产免费入口| 无码免费又爽又高潮喷水的视频| 亚洲国产人成在线观看| 在线观看午夜亚洲一区| 性做久久久久免费看| 6080午夜一级毛片免费看6080夜福利 | 亚洲AV无码专区亚洲AV伊甸园| 在线观看成人免费视频| 日本xxxx色视频在线观看免费| 又硬又粗又长又爽免费看 | 亚洲午夜电影在线观看高清 | 免费看成人AA片无码视频羞羞网| 成人免费一区二区三区| 在线91精品亚洲网站精品成人| 亚洲精品免费在线视频| 国产亚洲精品a在线观看app| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 国产无遮挡吃胸膜奶免费看| 国产在线观看免费观看不卡| 午夜免费福利视频| 伊人久久大香线蕉免费视频| 九九九精品视频免费| 亚洲aⅴ无码专区在线观看春色 |