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

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

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

    小菜毛毛技術(shù)分享

    與大家共同成長(zhǎng)

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

    log4j入門與提高-實(shí)例講解

    關(guān)鍵字: log4j,輸出到控制臺(tái),日志文件,日志文件分天,日志郵件

    官方網(wǎng)站:http://logging.apache.org/log4j/index.html:

     

    廢話不多說(shuō),切入主題,下面都是基礎(chǔ)的應(yīng)用。后面我會(huì)寫有關(guān)擴(kuò)展的應(yīng)用,使它更聽(tīng)話。

     

    讀取配置文件

    Java代碼 復(fù)制代碼
    1. package org.cjj.log4j.config.xml;   
    2.   
    3. import java.net.URL;   
    4.   
    5. import org.apache.log4j.xml.DOMConfigurator;   
    6.   
    7. /**  
    8.  * 單實(shí)例 讀取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代碼 復(fù)制代碼
    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.     <!-- ========================== 自定義輸出格式說(shuō)明================================ -->  
    6.     <!-- %p 輸出優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL -->  
    7.     <!-- #%r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)  -->  
    8.     <!-- #%c 輸出所屬的類目,通常就是所在類的全名 -->  
    9.     <!-- #%t 輸出產(chǎn)生該日志事件的線程名 -->  
    10.     <!-- #%n 輸出一個(gè)回車換行符,Windows平臺(tái)為“\r\n”,Unix平臺(tái)為“\n” -->  
    11.     <!-- #%d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為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.     <!-- ========================== 輸出方式說(shuō)明================================ -->  
    16.     <!-- Log4j提供的appender有以下幾種:  -->  
    17.     <!-- org.apache.log4j.ConsoleAppender(控制臺(tái)),  -->  
    18.     <!-- org.apache.log4j.FileAppender(文件),  -->  
    19.     <!-- org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個(gè)日志文件), -->  
    20.     <!-- org.apache.log4j.RollingFileAppender(文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件),  -->  
    21.     <!-- org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)   -->  
    22. <!-- ========================================================================== -->  
    23. <!-- 輸出到日志文件  -->  
    24.     <appender name="filelog_appender"  
    25.         class="org.apache.log4j.RollingFileAppender">  
    26.         <!-- 設(shè)置File參數(shù):日志輸出文件名 -->  
    27.         <param name="File" value="log/testlog4jxml_all.log" />  
    28.         <!-- 設(shè)置是否在重新啟動(dòng)服務(wù)時(shí),在原有日志的基礎(chǔ)添加新日志 -->  
    29.         <param name="Append" value="true" />  
    30.         <!-- 設(shè)置文件大小 -->  
    31.         <param name="MaxFileSize" value="1MB" />  
    32.         <!-- 設(shè)置文件備份 -->  
    33.         <param name="MaxBackupIndex" value="10000" />  
    34.         <!-- 設(shè)置輸出文件項(xiàng)目和格式 -->  
    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. <!-- 輸出到日志文件 每天一個(gè)日志  -->  
    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. <!-- 輸出到控制臺(tái)中 -->  
    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="測(cè)試郵件發(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. <!--- 異步測(cè)試,當(dāng)日志達(dá)到緩存區(qū)大小時(shí)候執(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.  <!-- 設(shè)置包限制輸出的通道 -->  
    81.     <category name="org.cjj" additivity="false">  
    82.                <!-- 日志輸出級(jí)別,起碼可以有5個(gè)級(jí)別,可以擴(kuò)展自己的級(jí)別,郵件發(fā)送必須是ERROR級(jí)別不好用,所以最后自己擴(kuò)展一個(gè)郵件發(fā)送級(jí)別 -->  
    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>  

     

    郵件亂碼問(wèn)題:

     

    郵件發(fā)送的布局采用了org.cjj.log4j.extend.PatternLayout_zh,因?yàn)樵瓉?lái)的org.apache.log4j.PatternLayout會(huì)有亂碼,所以重寫一個(gè)方法既可。可能方法有點(diǎn)野蠻,所以那位有好的方法還請(qǐng)指教。

     

    Java代碼 復(fù)制代碼
    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) 評(píng)論(0)  編輯  收藏 所屬分類: LOG4J

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产亚洲精品美女久久久| 亚洲AV无码成H人在线观看| 亚洲国产精品成人精品无码区 | 亚洲精品永久www忘忧草| 少妇性饥渴无码A区免费| 久久亚洲国产成人影院网站| 无码人妻一区二区三区免费视频| 免费国产不卡午夜福在线| 美女视频免费看一区二区| 天堂亚洲免费视频| 曰韩无码AV片免费播放不卡 | 免费黄色一级毛片| 羞羞视频免费网站含羞草| 亚洲精品视频在线看| 中文字幕免费在线看线人动作大片 | 中文字幕在线免费观看视频| 久久精品国产亚洲AV麻豆王友容| 久久国产免费一区| 亚洲国产成人资源在线软件| 最近中文字幕无吗免费高清| 亚洲av综合日韩| 国产精品亚洲二区在线观看| 免费一级毛片在线播放视频| 中文字幕亚洲免费无线观看日本| 99国产精品永久免费视频 | 亚洲日韩小电影在线观看| 一级毛片**不卡免费播| 亚洲国产精品白丝在线观看| 在线免费视频一区| h在线看免费视频网站男男| 亚洲毛片在线观看| 无码一区二区三区免费视频| 羞羞漫画登录页面免费| 亚洲精品无码久久久久去q| 我们的2018在线观看免费高清| 国产综合成人亚洲区| 亚洲精品无码久久一线| 大陆一级毛片免费视频观看| 一级做a爰片久久毛片免费看| 亚洲首页在线观看| 亚洲国产人成精品|