<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永久无码精品一区二区| 精品国产日韩亚洲一区91| 人成午夜免费大片在线观看| 中文字幕免费在线看| 久久精品视频免费播放| 久久国内免费视频| 伊在人亚洲香蕉精品区麻豆| 久久精品亚洲乱码伦伦中文| 亚洲欧洲免费视频| 亚洲乱亚洲乱妇24p| 国产免费牲交视频免费播放| 日本免费中文字幕| 在线看片人成视频免费无遮挡| 亚洲综合另类小说色区色噜噜| 亚洲AV无码不卡在线播放| 亚洲高清视频在线| 国产精品玖玖美女张开腿让男人桶爽免费看 | 中文字幕中韩乱码亚洲大片| 亚洲国语精品自产拍在线观看| 亚洲AV综合色区无码二区爱AV| 无遮挡a级毛片免费看| 一级毛片免费不卡在线| 免费观看男人免费桶女人视频 | 看全色黄大色大片免费久久| 亚洲中文字幕日产乱码高清app | 91亚洲va在线天线va天堂va国产 | 亚洲av永久综合在线观看尤物 | 中文字幕无码精品亚洲资源网久久| 思思久久99热免费精品6| 最近2019免费中文字幕6| 免费看小12萝裸体视频国产| 午夜影视日本亚洲欧洲精品一区 | 亚洲国产精品日韩av不卡在线| 国产在线精品观看免费观看| 成年女人色毛片免费看| 亚洲热妇无码AV在线播放| 亚洲乱码无人区卡1卡2卡3| 无码国产精品一区二区免费式芒果| 国产免费观看a大片的网站|