posts - 8,  comments - 174,  trackbacks - 0
          一、log4j配置,一般可以采用兩種方式,資源文件和XML文件。

          1、屬性文件

          log4j.rootLogger=DEBUG,stdout,R

          ##日志文件的名稱(定義為控制臺輸出)
          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          ##靈活定義輸出格式
          log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
          ##輸出格式定義
          log4j.appender.stdout.layout.ConversionPattern=[%t]?%-5p?%-20c{2}?-?%m?%n?

          ##日志文件的名稱(定義為文件輸出)
          log4j.appender.R=org.apache.log4j.RollingFileAppender
          ##日志文件路徑
          log4j.appender.R.File=D:/log/wenhan-uk.log
          ##
          log4j.appender.R.ImmediateFlush=true
          ##日志文件的大小
          log4j.appender.R.MaxFileSize=100KB
          ##
          log4j.appender.R.MaxBackupIndex=1
          ##文件輸出方式
          log4j.appender.R.layout=org.apache.log4j.PatternLayout
          ##輸出格式定義
          log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE}?[%t]?%-5p?%-30c{3}?%x?-?%m?%n


          ###############################??配置根Logger??############################
          語法:??log4j.rootLogger?=?[?level?]?,?appenderName,?appenderName?…???????????
          參數(shù):??
          ???????1、?level:?????????log4j級別,是日志記錄的優(yōu)先級。??????????????????????????????????????
          ???????2、?appenderName:?日志信息輸出處,您可以同時指定多個輸出目的地,可以是文件、控制臺等。
          例子:??log4j.rootLogger=DEBUG,R??????DEBUG為級別?????A1為輸出地????????????????????????????????

          ###############################??log4j級別??###############################
          級別:??????
          ???????FATAL??-??0????指出每個嚴重的錯誤事件將會導致應(yīng)用程序的退出。
          ???????ERROR??-??3????指出雖然發(fā)生錯誤事件,但仍然不影響系統(tǒng)的繼續(xù)運行。
          ???????WARN???-??4????表明會出現(xiàn)潛在錯誤的情形。
          ???????INFO???-??6????表明消息在粗粒度級別上突出強調(diào)應(yīng)用程序的運行過程。
          ???????DEBUG??-??7????指出細粒度信息事件對調(diào)試應(yīng)用程序是非常有幫助的。


          ###############################??appender??###############################
          類別:
          ???????org.apache.log4j.ConsoleAppender???????????????????????(控制臺)
          ???????org.apache.log4j.FileAppender??????????????????????????(文件)
          ???????org.apache.log4j.DailyRollingFileAppender??????????????(每天產(chǎn)生一個日志文件)
          ???????org.apache.log4j.RollingFileAppender???????????????????(文件大小到達指定尺寸的時候產(chǎn)生一個新的文件)
          ???????org.apache.log4j.WriterAppender??????????????????????(將日志信息以流格式發(fā)送到任意指定的地方)?
          例子:
          ???????log4j.appender.A1=org.apache.log4j.ConsoleAppender???(指定A1的appender為控制臺)
          ???
          ##############################??layout??##################################
          類別:
          ???????org.apache.log4j.HTMLLayout??????????????????????????(以HTML表格形式布局)
          ???????org.apache.log4j.PatternLayout???????????????????????(可以靈活地指定布局模式)
          ???????org.apache.log4j.SimpleLayout????????????????????????(包含日志信息的級別和信息字符串)
          ???????org.apache.log4j.TTCCLayout??????????????????????????(包含日志產(chǎn)生的時間、線程、類別等等信息)

          ########################??配置log4j輸出地appender??##########################
          語法:

          ???????log4j.appender.[appenderName]?=?appender?class????????(指定輸出地所對應(yīng)的class)
          ???????log4j.appender.[appenderName].option1?=?value1?????????(設(shè)定第一個參數(shù))
          ?????????????????參數(shù)包含文件路徑、輸出格式等等?????????????????????
          ???????log4j.appender.[appenderName].optionN?=?valueN?????????(設(shè)定第N個參數(shù))
          例子:
          ???????log4j.appender.stdout=
          ???????????????????????org.apache.log4j.ConsoleAppender?????????(指定stdout輸出地為控制臺)
          ???????log4j.appender.stdout.layout=
          ???????????????????????org.apache.log4j.PatternLayout???????????(定義為靈活樣式輸出)
          ???????log4j.appender.stdout.layout.ConversionPattern=
          ???????????????????????[%t]?%-5p?%-20c{2}?-?%m?%n???????????????(指定日志輸出格式)
          ?
          ########################??定義靈活輸出格式??###################################??????
          參數(shù):
          ???????-X號:??X信息輸出時左對齊;
          ???????%p:????日志信息級別
          ???????%d{}:??日志信息產(chǎn)生時間
          ???????%c:????日志信息所在地(類名)
          ???????%m:????產(chǎn)生的日志具體信息
          ???????%n:????輸出日志信息換行????

          ##############################??其他設(shè)置??###################################???
          ???????
          關(guān)于Log4j比較全面的配置
          LOG4J的配置之簡單使它遍及于越來越多的應(yīng)用中了:Log4J配置文件實現(xiàn)了輸出到控制臺、文件、回滾文件、發(fā)送日志郵件、輸出到數(shù)據(jù)庫日志表、自定義標簽等全套功能。擇其一二使用就夠用了,?

          log4j.rootLogger=DEBUG,CONSOLE,A1,im?
          log4j.addivity.org.apache=true?

          ?

          #?應(yīng)用于控制臺?

          log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender?
          log4j.appender.Threshold=DEBUG?
          log4j.appender.CONSOLE.Target=System.out?
          log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout?
          log4j.appender.CONSOLE.layout.ConversionPattern=[framework]?%d?-?%c?-%-4r?[%t]?%-5p?%c?%x?-?%m%n?
          #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]?n%c[CATEGORY]%n%m[MESSAGE]%n%n?


          #應(yīng)用于文件?

          log4j.appender.FILE=org.apache.log4j.FileAppender?
          log4j.appender.FILE.File=file.log?
          log4j.appender.FILE.Append=false?
          log4j.appender.FILE.layout=org.apache.log4j.PatternLayout?
          log4j.appender.FILE.layout.ConversionPattern=[framework]?%d?-?%c?-%-4r?[%t]?%-5p?%c?%x?-?%m%n?
          #?Use?this?layout?for?LogFactor?5?analysis?

          ?

          #?應(yīng)用于文件回滾?

          log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender?
          log4j.appender.ROLLING_FILE.Threshold=ERROR?
          log4j.appender.ROLLING_FILE.File=rolling.log?
          log4j.appender.ROLLING_FILE.Append=true?
          log4j.appender.ROLLING_FILE.MaxFileSize=10KB?
          log4j.appender.ROLLING_FILE.MaxBackupIndex=1?
          log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout?
          log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework]?%d?-?%c?-%-4r?[%t]?%-5p?%c?%x?-?%m%n?


          #應(yīng)用于socket?
          log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender?
          log4j.appender.SOCKET.RemoteHost=localhost?
          log4j.appender.SOCKET.Port=5001?
          log4j.appender.SOCKET.LocationInfo=true?
          #?Set?up?for?Log?Facter?5?
          log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout?
          log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n?


          #?Log?Factor?5?Appender?
          log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender?
          log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000?

          ?

          #?發(fā)送日志給郵件?

          log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender?
          log4j.appender.MAIL.Threshold=FATAL?
          log4j.appender.MAIL.BufferSize=10?
          log4j.appender.MAIL.From=xxx@www.xxx.com?
          log4j.appender.MAIL.SMTPHost=www.wusetu.com?og4j.appender.MAIL.Subject=Log4J?Message?
          log4j.appender.MAIL.To=xxx@www.xxx.com?
          log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout?
          log4j.appender.MAIL.layout.ConversionPattern=[framework]?%d?-?%c?-%-4r?[%t]?%-5p?%c?%x?-?%m%n?

          ?

          #?用于數(shù)據(jù)庫?
          log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender?
          log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test?
          log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver?
          log4j.appender.DATABASE.user=root?
          log4j.appender.DATABASE.password=?
          log4j.appender.DATABASE.sql=INSERT?INTO?LOG4J?(Message)?VALUES?('[framework]?%d?-?%c?-%-4r?[%t]?%-5p?%c?%x?-?%m%n')?
          log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout?
          log4j.appender.DATABASE.layout.ConversionPattern=[framework]?%d?-?%c?-%-4r?[%t]?%-5p?%c?%x?-?%m%n?


          log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender?
          log4j.appender.A1.File=SampleMessages.log4j?
          log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'?
          log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout?


          輸出到2000NT日志
          ?把Log4j壓縮包里的NTEventLogAppender.dll拷到WINNT\SYSTEM32目錄下

          ?log4j.logger.NTlog=FATAL,?A8
          ?#?APPENDER?A8
          ?log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender
          ?log4j.appender.A8.Source=JavaTest
          ?log4j.appender.A8.layout=org.apache.log4j.PatternLayout
          ?log4j.appender.A8.layout.ConversionPattern=%-4r?%-5p?[%t]?%37c?%3x?-?%m%n


          #自定義Appender?

          log4j.appender.im?=?net.cybercorlin.util.logger.appender.IMAppender?

          log4j.appender.im.host?=?mail.cybercorlin.net?
          log4j.appender.im.username?=?username?
          log4j.appender.im.password?=?password?
          log4j.appender.im.recipient?=?xxx@xxx.net?

          log4j.appender.im.layout=org.apache.log4j.PatternLayout?
          log4j.appender.im.layout.ConversionPattern?=[framework]?%d?-?%c?-%-4r?[%t]?%-5p?%c?%x?-?%m%n

          #####################################??end??######################################?????????
          ???????
          ???????

          ???????

          2、XML文件例子

          <?xml?version="1.0"?encoding="GB2312"??>
          <!DOCTYPE?log4j:configuration?SYSTEM?"log4j.dtd">

          <log4j:configuration?xmlns:log4j="http://jakarta.apache.org/log4j/">

          ???
          <appender?name="com.unmi.all"?class="org.apache.log4j.RollingFileAppender">
          ???
          ??????
          <!--?設(shè)置通道ID:com.unmi.all和輸出方式:org.apache.log4j.RollingFileAppender?-->
          ??????
          <param?name="File"?value="E:/study/log4j/all.output.log"?/><!--?設(shè)置File參數(shù):日志輸出文件名?-->
          ??????
          <param?name="Append"?value="false"?/><!--?設(shè)置是否在重新啟動服務(wù)時,在原有日志的基礎(chǔ)添加新日志?-->
          ??????
          <param?name="MaxBackupIndex"?value="10"?/>?
          ??????
          <layout?class="org.apache.log4j.PatternLayout">
          ??????????
          <param?name="ConversionPattern"?value="%p?(%c:%L)-?%m%n"?/><!--?設(shè)置輸出文件項目和格式?-->
          ??????
          </layout>
          ???
          </appender>
          ???
          ???
          <appender?name="com.unmi.zcw"?class="org.apache.log4j.RollingFileAppender">
          ??????
          <param?name="File"?value="E:/study/log4j/unmi.output.log"?/>
          ??????
          <param?name="Append"?value="true"?/>
          ??????
          <param?name="MaxFileSize"?value="10240"?/>?<!--?設(shè)置文件大小?-->
          ??????
          <param?name="MaxBackupIndex"?value="10"?/>?
          ??????
          <layout?class="org.apache.log4j.PatternLayout">
          ??????????
          <param?name="ConversionPattern"?value="%p?(%c:%L)-?%m%n"?/>
          ??????
          </layout>
          ???
          </appender>
          ???
          ???
          <logger?name="unmi.log">?<!--?設(shè)置域名限制,即zcw.log域及以下的日志均輸出到下面對應(yīng)的通道中?-->
          ??????
          <level?value="debug"?/><!--?設(shè)置級別?-->
          ??????
          <appender-ref?ref="com.unmi.zcw"?/><!--?與前面的通道id相對應(yīng)?-->
          ???
          </logger>
          ???
          ???
          <root>?<!--?設(shè)置接收所有輸出的通道?-->
          ??????
          <appender-ref?ref="com.unmi.all"?/><!--?與前面的通道id相對應(yīng)?-->
          ???
          </root>

          </log4j:configuration>


          二、配置文件加載方法:
          ?
          對于properties文件,一般都不用手工去加載,由Log4j第一次初始化時自動就加載了
          import?org.apache.log4j.Logger;
          import?org.apache.log4j.PropertyConfigurator;
          import?org.apache.log4j.xml.DOMConfigurator;

          public?class?Log4jApp?{
          ???
          public?static?void?main(String[]?args)?{
          ???????DOMConfigurator.configure(
          "E:/study/log4j/log4j.xml");//加載.xml文件
          ???????
          //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加載.properties文件

          ???????Logger?log
          =Logger.getLogger("com.unmi.test");
          ???????log.info(
          "測試");
          ???}

          }


          ?????????????????????############################???????end ??????? ##############################
          posted on 2007-08-15 17:00 月月鳥 閱讀(2539) 評論(7)  編輯  收藏 所屬分類: J2EE

          FeedBack:
          # re: LOG4J 之經(jīng)典篇
          2008-11-28 11:15 | sunchuanfu
          lz寫的很詳細啊,收藏了先。  回復  更多評論
            
          # re: LOG4J 之經(jīng)典篇
          2010-07-01 22:38 | 月月鳥
          http://wxinpeng.javaeye.com/blog/552735
          Spring的AOP事務(wù)管理默認針對unchecked異常回滾  回復  更多評論
            
          # re: LOG4J 之經(jīng)典篇
          # re: LOG4J 之經(jīng)典篇
          # re: LOG4J 之經(jīng)典篇
          2010-08-23 23:21 | 月月鳥
          讓開發(fā)自動化系列專欄
          LiquiBase
          http://www.ibm.com/developerworks/cn/java/j-ap/  回復  更多評論
            
          # re: LOG4J 之經(jīng)典篇
          # re: LOG4J 之經(jīng)典篇

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


          網(wǎng)站導航:
           
          <2010年7月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(5)

          隨筆分類(8)

          隨筆檔案(8)

          文章分類(1)

          文章檔案(1)

          其他

          娛樂

          技術(shù)

          搜索

          •  

          積分與排名

          • 積分 - 116284
          • 排名 - 503

          最新隨筆

          最新評論

          評論排行榜

          主站蜘蛛池模板: 棋牌| 天全县| 青铜峡市| 开阳县| 贵德县| 巍山| 板桥市| 临漳县| 大港区| 屯门区| 南部县| 亳州市| 维西| 宁津县| 顺昌县| 石柱| 老河口市| 迁西县| 柘荣县| 洪江市| 视频| 綦江县| 乌鲁木齐县| 江口县| 昌都县| 英吉沙县| 庐江县| 临沭县| 公安县| 六枝特区| 深水埗区| 桦甸市| 吉林市| 乐亭县| 吴桥县| 宣威市| 栾川县| 内丘县| 玛曲县| 新密市| 上虞市|