vjame

          優(yōu)化代碼是無(wú)止境的
          隨筆 - 65, 文章 - 9, 評(píng)論 - 26, 引用 - 0
          數(shù)據(jù)加載中……

          log4j的使用

          Log4j是一個(gè)開源的日志記錄組件,其產(chǎn)品已經(jīng)相當(dāng)?shù)某墒欤沂褂梅浅5膹V泛。在工程中以易用,方便等代替了 System.out 等打印語(yǔ)句。
          Log4j的目標(biāo)是:它允許開發(fā)人員以任意的精細(xì)程度控制哪些日志說(shuō)明被輸出。通過(guò)使用外部的配置文件,可以在運(yùn)行時(shí)配置它。
          通過(guò)其要實(shí)現(xiàn)的目標(biāo),我們已理解出log4j將是一個(gè)十分好用的組件。
          Log4j的具體在 
          http://logging.apache.org/log4j/找到 它。另外,log4j已經(jīng)被轉(zhuǎn)換成 C, C++, C#, Perl, Python, Ruby, 和 Eiffel 語(yǔ)言。
          下面,我就從log4j的配置文件來(lái)具體講述,log4j的功能,通過(guò)配置文件來(lái)學(xué)習(xí)新技術(shù)已是一個(gè)很好的學(xué)習(xí)方法。
          Log4j有兩個(gè)重要的概念:一是日志級(jí)別,其日志級(jí)別關(guān)系為
          DEBUG>INFO>WARN>ERROR>FATAL 原則,高級(jí)別將顯示低級(jí)別的日志
          二是appender(也是輸出目標(biāo)),在這上的還有輸出格式
          其支持的輸出目標(biāo)為 文件,控制臺(tái),數(shù)據(jù)庫(kù),且支持一次指定多個(gè)輸出目標(biāo)
          Log4j的配置文件除了支持:*.properties 文件名,還支持運(yùn)用十分廣泛的xml文件。
          下面的講述中,我只通過(guò)*.properties文件來(lái)說(shuō)明。
          Log4j的屬性文件的講述
          # 定義根日志,日志級(jí)別為DEBUG 輸出目標(biāo)為控制臺(tái),文件
          log4j.rootLogger=INFO,A1,R
          # 包c(diǎn)om.liaowf日志,日志級(jí)別為DEBUG 輸出目標(biāo)為控制臺(tái),文件(注意,包c(diǎn)om.liaowf下的所有類將自動(dòng)擁有此日志屬性)
          log4j.logger.com.liaowf=DEBUG,A1,R
          # 名稱為IAMLogInfo日志,日志級(jí)別為INFO,輸出目標(biāo)為數(shù)據(jù)庫(kù)(注意,所有使用IAMLogInfo作為名稱的日志將擁用些日志屬性)
          log4j.logger.IAMLogInfo=INFO,DATABASE

          # 類com.liaowf.console.connector.Synchro日志,日志級(jí)別為DEBUG,輸出目標(biāo)為控制臺(tái)
          log4j.logger.com.liaowf.console.connector.Synchro=DEBUG,A1,userSynR
          # 類com.liaowf.console.authorization.dao.UserDao日志,級(jí)別為DEBUG,輸出目標(biāo)為文件
          log4j.logger.com.liaowf.console.authorization.dao.UserDao=DEBUG,A1,userTelnet

          # 配置TRUE
          log4j.addivity.org.apache=true

          # 定義控制臺(tái)Appender
          log4j.appender.A1=org.apache.log4j.ConsoleAppender
          log4j.appender.A1.layout=org.apache.log4j.PatternLayout
          log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n

          # 輸出到文件Appender
          log4j.appender.R=org.apache.log4j.RollingFileAppender
          log4j.appender.R.File=c:/iamSystem.log
          log4j.appender.R.MaxFileSize=500KB
          log4j.appender.R.MaxBackupIndex=1
          #log4j.appender.R.layout=org.apache.log4j.HTMLLayout
          log4j.appender.R.layout=org.apache.log4j.PatternLayout
          log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n


          # JDBC 輸出到數(shù)據(jù)庫(kù)的Appender
          #log4j.appender.DATABASE.Threshold=INFO
          #log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
          #log4j.appender.DATABASE.BufferSize=10
          #log4j.appender.DATABASE.URL=jdbc:microsoft:sqlserver://10.170.88.4:1433;DatabaseName=iamconfig
          #log4j.appender.DATABASE.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
          #log4j.appender.DATABASE.user=iamconfig
          #log4j.appender.DATABASE.password=iamconfig
          #log4j.appender.DATABASE.sql=INSERT INTO wap_mail_jws_log  VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m', '')
          #log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout

          # 輸出到文件的appender
          log4j.appender.userSynR=org.apache.log4j.RollingFileAppender
          log4j.appender.userSynR.File=c:/iamSystem_userSynR.log
          log4j.appender.userSynR.MaxFileSize=500KB
          log4j.appender.userSynR.MaxBackupIndex=1
          #log4j.appender.userSynR.layout=org.apache.log4j.HTMLLayout
          log4j.appender.userSynR.layout=org.apache.log4j.PatternLayout
          log4j.appender.userSynR.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

          # 輸出到文件Appender
          log4j.appender.userTelnet=org.apache.log4j.RollingFileAppender
          log4j.appender.userTelnet.File=c:/iamTelnet.log
          log4j.appender.userTelnet.MaxFileSize=500KB
          log4j.appender.userTelnet.MaxBackupIndex=1
          #log4j.appender.userTelnet.layout=org.apache.log4j.HTMLLayout
          log4j.appender.userTelnet.layout=org.apache.log4j.PatternLayout
          log4j.appender.userTelnet.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

          log4j倒底能提供我們什么功能,我們來(lái)總結(jié)一下:
          1 根據(jù)我們?cè)O(shè)置的日志級(jí)別,控制日志的輸出
          2 日志的輸出支持自增式文件,控制臺(tái),數(shù)據(jù)庫(kù),還可以擴(kuò)展。
          3 日志的屬性,當(dāng)按"."命名有繼承性,我們常使用類名來(lái)命名日志
          2 通過(guò)上面的介始,我們給一個(gè)工程沒有l(wèi)og4j的工程增加log4j功能的。根據(jù)下面幾個(gè)步驟,你將很輕松的完成。
          1 下載log4j的jar包
          2 編寫一個(gè)log4j.properties 屬性文件,放到你的源文件的根下,再根據(jù)具體修改
          3 在每一個(gè)需要記錄日的類中,增加一個(gè)類成員
              // 初始化日志處理類
            Logger log = Logger.getLogger(類名.class.getName());

          4 在你需要打日志信息的代碼中,如下寫出
          打info信息
          Log4j.infor("");
          打debug信息
          If(log4j.isDebuged()) {
            Log4j.debug("");
          }
          打error信息
          Log4j.error("");

          posted on 2008-09-11 17:31 lanjh 閱讀(220) 評(píng)論(0)  編輯  收藏 所屬分類: 開源


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


          網(wǎng)站導(dǎo)航:
          相關(guān)文章:
           
          主站蜘蛛池模板: 晋城| 灵武市| 和政县| 丹东市| 霍州市| 西林县| 治多县| 尤溪县| 营山县| 靖远县| 泰来县| 辽宁省| 图们市| 青浦区| 衡水市| 鄂托克旗| 武邑县| 峨山| 晴隆县| 子洲县| 弥渡县| 兖州市| 丰县| 错那县| 连城县| 秦皇岛市| 图片| 新邵县| 偏关县| 连平县| 隆尧县| 肇庆市| 区。| 泗洪县| 增城市| 长岭县| 睢宁县| 两当县| 龙口市| 万年县| 昌都县|