JAVA涂鴉
          關于JAVA的點點滴滴
          posts - 50,  comments - 689,  trackbacks - 0
          1、 Log4j是什么?
          ? Log4j可以幫助調試(有時候debug是發揮不了作 用的)和分析,要下載和了解更詳細的內容,還是訪問其官方網站吧:
          http://jakarta.apache.org/log4j

          2、Log4j的概念
          ?? Log4j中有三個主要的組件,它們分別是
          Logger、Appender和Layout,Log4j 允許開發人員定義多個Logger,每個Logger擁有自己的名字,Logger之間通過名字來表明隸屬關系。有一個Logger稱為Root,它永遠 存在,且不能通過名字檢索或引用,可以通過Logger.getRootLogger()方法獲得,其它Logger通過 Logger.getLogger(String name)方法。
          ?? Appender則是用來指明將所有的log信息存放到什么地方,Log4j中支持多種appender,如
          console、files、GUI components、NT Event Loggers等,一個Logger可以擁有多個Appender,也就是你既可以將Log信息輸出到屏幕,同時存儲到一個文件中。
          ?? Layout的作用是控制Log信息的輸出方式,也就是格式化輸出的信息。
          ?? Log4j中將要輸出的Log信息定義了5種級別,依次為DEBUG、INFO、WARN、ERROR和FATAL,當輸出時,只有級別高過配置中規定的 級別的信息才能真正的輸出,這樣就很方便的來配置不同情況下要輸出的內容,而不需要更改代碼,這點實在是方便啊。

          3、Log4j的配置文件
          ? 雖然可以不用配置文件,而在程序中實現配置,但這種方法在如今的系統開發中顯然是不可取的,能采用配置文件的地方一定一定要用配置文件。Log4j支持兩 種格式的配置文件:XML格式和Java的property格式,本人更喜歡后者,首先看一個簡單的例子吧,如下:

          ? log4j.rootLogger=debug, stdout, R
          ? log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          ? log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

          ? # Pattern to output the caller's file name and line number.
          ? log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

          ? log4j.appender.R=org.apache.log4j.RollingFileAppender
          ? log4j.appender.R.File=example.log
          ? log4j.appender.R.MaxFileSize=
          100KB

          ? # Keep one backup file
          ? log4j.appender.R.MaxBackupIndex=1

          ? log4j.appender.R.layout=org.apache.log4j.PatternLayout
          ? log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n?????????

          ? 首先,是設置root,格式為 log4j.rootLogger=[level],appenderName,?...,其中level就是設置需要輸出信息的級別,后面是appender的輸出的目的地,appenderName就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。 配置日志信息輸出目的地Appender,其語法為
          ? log4j.appender.appenderName = fully.qualified.name.of.appender.class
          ? log4j.appender.appenderName.option1 = value1
          ? ...
          ? log4j.appender.appenderName.option = valueN

          Log4j提供的appender有以下幾種:
          ? org.apache.log4j.ConsoleAppender(控制臺)
          ? org.apache.log4j.FileAppender(文件)
          ? org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)
          ? org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生新文件)
          ? org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
          配置日志信息的格式(布局),其語法為:
          ? log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
          ? log4j.appender.appenderName.layout.option1 = value1
          ? ....
          ? log4j.appender.appenderName.layout.option = valueN

          Log4j提供的layout有以下幾種:
          ? org.apache.log4j.HTMLLayout(以HTML表格形式布局),
          ? org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
          ? org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
          ? org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)

          Log4J采用類似C語言中的printf函數的打印格式格式化日志信息,打印參數如下: %m 輸出代碼中指定的消息

             %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
            %r 輸出自應用啟動到輸出該log信息耗費的毫秒數
            %c 輸出所屬的類目,通常就是所在類的全名
            %t 輸出產生該日志事件的線程名
            %n 輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n”
            %d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:
          2002年10月18日 22:10:28,921
            %l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java:10)



          4、Log4j在程序中的使用

          ? 要在自己的程序中使用Log4j,首先需要將commons-logging.jar和logging-log4j-1.2.9.jar導入到構建路徑中。然后再將log4j.properties放到src根目錄下。這樣就可以在程序中使用log4j了。在類中使用log4j,
          首先聲明一個靜態變量 Logger logger=Logger.getLog("classname");現在就可以使用了,用法如下:logger.debug("debug message")或者logger.info("info message"),看下面一個小例子:

          ? import com.foo.Bar;
          ? import org.apache.log4j.Logger;
          ??import org.apache.log4j.PropertyConfigurator;
          ??public class MyApp {
          ? ? static Logger logger = Logger.getLogger(MyApp.class.getName());
          ?? ?public static void main(String[] args) {
          ??? ? // BasicConfigurator replaced with PropertyConfigurator.
          ???? ?PropertyConfigurator.configure(args[0]);
          ????? logger.info("Entering application.");
          ????? Bar bar = new Bar();
          ????? bar.doIt();
          ????? logger.info("Exiting application.");
          ??? }
          ??}


          posted on 2006-01-15 23:32 千山鳥飛絕 閱讀(169633) 評論(90)  編輯  收藏 所屬分類: Web開發

          FeedBack:
          # re: 如何使用Log4j?
          2007-04-12 20:10 | patriotlml
          好文章.
          拜一個.  回復  更多評論
            
          # 那如何在程序中實現配置log4j呢?
          2007-06-06 04:11 | DX
          那如何在程序中實現配置log4j呢? 至少有些配置是要在程序中更改的。  回復  更多評論
            
          # re: 如何使用Log4j?
          2007-09-18 11:49 | A咪
          一看就會了 好文章啊 謝謝啦  回復  更多評論
            
          # re: 如何使用Log4j?
          2007-09-24 14:21 | 網友
          狗屎  回復  更多評論
            
          # re: 如何使用Log4j?
          2007-09-28 13:30 | 黑盒子
          非常感謝  回復  更多評論
            
          # re: 如何使用Log4j?
          2007-10-18 10:34 | jing
          翻譯的好,有奉獻精神,罵人的,哎,鄙視ing  回復  更多評論
            
          # re: 如何使用Log4j?
          2007-10-26 20:45 | Fine
          正找這部分資料,謝謝  回復  更多評論
            
          # re: 如何使用Log4j?
          2007-11-08 10:57 | heyl
          簡單明了。謝謝。正是我需要的。  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2007-12-11 15:00 | Mr.TianShu
          log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.Embedded).
          log4j:WARN Please initialize the log4j system properly.  回復  更多評論
            
          # re: 如何使用Log4j?
          2007-12-14 16:08 | maggie
          不錯!謝謝!  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2007-12-26 10:31 | XXX
          不錯,鄙視罵人地  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-01-28 16:53 | 撒餓飯
          支持!!!  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-02-21 09:58 | timeup
          罵人的才是狗屎!!!雙手雙腳支持LZ!!!  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-03-11 23:16 | jquery
          up....  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-03-24 17:02 | 十三
          十分感謝!  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2008-03-31 11:31 | Jerry
          簡單明了  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-03-31 16:50 | 阿司法
          你就是死  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-04-10 19:36 | wo
          up!  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-04-12 20:34 | 事實
          頂一個  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-04-13 10:07 | 阿哲
          不錯,簡單易懂  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-04-13 10:38 | 阿哲
          順便說一聲,能不能把你的留言信息分一下頁,多好的文章,就因為這一點顯得稍許遜色  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-04-26 18:25 | 008
          解釋還不錯
          不過那個例子確實垃圾
          虎頭蛇尾啊,呵呵..  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-05-09 12:55 | zlk
          介紹得有點淺顯  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-05-15 16:30 | 張權
          謝謝了,正是我需要的 !  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-05-22 17:03 | hellokitty007
          謝謝分享, 正好需要,學習一下;

          鄙視罵人者  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-05-26 11:31 | wangluo23
          好文章,很有幫助,謝謝  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-06-19 22:10 | 1027
          挺好。!!!謝謝了。  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-06-21 10:52 | sunwei_1002
          頂。謝謝!鄙視罵人者。  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-07-09 15:11 | 麻花疼
          射射。
          新手上路中
            回復  更多評論
            
          # re: 如何使用Log4j?
          2008-07-31 22:34 | 拿著磚頭拍腦袋
          偶沒看懂還  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2008-08-05 23:43 | 小林
          不錯,剛好用上,謝謝!  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-08-27 15:42 | 雷博弈
          取之有限,用之不竭  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2008-10-06 16:03 | cc
          摘抄的!  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-10-24 09:26 | BingGo
          介紹太簡單了,半截,,,,,,  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-11-28 08:48 | shohokuf
          ding!@  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-11-28 11:17 | sunchuanfu
          頂一下!  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-12-02 16:03 | mat
          不錯,入門首選!  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-12-17 15:07 | olduan
          thanks  回復  更多評論
            
          # re: 如何使用Log4j?
          2008-12-19 13:11 | dv
          m%是什么  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-02-18 14:50 | 西側
          簡單易懂!謝謝  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2009-02-25 10:50 | bc
          嗯,對我這種菜鳥級別的入門者,非常有幫助!
          樓上幾位罵人的,可能是覺得內容太簡單了,但是沒必要罵人唄  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-04-22 11:36 |
          垃圾例子 垃圾解釋 這種文章也寫 媽的 看不下去了  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2009-04-29 16:05 | dd
          mao dou kan bu dong  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-06-17 22:51 | geoconst
          非常好,淺顯易懂,容易上手
          搞不懂,居然還有人罵臟話  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-06-21 14:41 | lycrystal
          挺詳細的,不錯  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2009-08-31 11:55 | jay
          頂一個  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-09-16 11:17 | ss
          不錯呀 對初學者而言   回復  更多評論
            
          # re: 如何使用Log4j?
          2009-09-17 20:16 | 發生的
          強烈鄙視罵人者,有狠話講 就自己寫個列子看看  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-09-28 10:19 |
          不尊重別人的勞動成果者。。不要到處咬人  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-10-28 18:44 | 士大夫
          不錯 一看就會
            回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2009-11-10 11:54 | hehe
          還行,只是應該用log4j.xml  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-12-05 22:24 | yongcau
          拜讀,不錯  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2009-12-07 09:22 | dong
          k。i。s。s。  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-12-09 11:05 | hello
          為什么樓主喜歡java properties 配置形式呢 為什么不選用XML的配置不是更好么 一般的獨立控件配置信息都是用XML配置的 比較正規不是么哈哈 個人意見  回復  更多評論
            
          # re: 如何使用Log4j?
          2009-12-09 12:00 | 愛愛愛
          咱有點素質行不,都多大的孩子了,還罵人,不要影響我們中國人的形象  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2010-01-20 15:22 | 123
          有意思,不過怎么private static final Log log = LogFactory.getLog(JueseDAO.class); 又是什么意思,  回復  更多評論
            
          # re: 如何使用Log4j?
          2010-06-03 17:31 | kawin
          Java技術群:49464487  回復  更多評論
            
          # re: 如何使用Log4j?
          2010-07-13 17:40 | 游客
          頂一下,簡單明了  回復  更多評論
            
          # re: 如何使用Log4j?
          2010-11-26 11:08 | mianhuaman
          不錯兄弟  回復  更多評論
            
          # re: 如何使用Log4j?
          2011-01-06 22:16 | ijse
          嗯,, 不錯, 是翻譯官方文檔的。  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2011-02-18 16:05 | 1
          謝謝!好文章并不一定多深奧。本來不懂,一看就會了,這就是好文章  回復  更多評論
            
          # re: 如何使用Log4j?
          2011-06-02 17:29 | hello world
          @網友

          wo cao ni ma   回復  更多評論
            
          # re: 如何使用Log4j?
          2011-06-17 14:24 | ankly
          up  回復  更多評論
            
          # re: 如何使用Log4j?
          2011-07-07 17:06 | 你猜
          @Mr.TianShu
          加上 log4j.properties 文件在src文件夾里。  回復  更多評論
            
          # re: 如何使用Log4j?
          2011-07-22 16:54 | Biker
          所有文件目錄結構跟你的一樣,但報錯:java.io.FileNotFoundException: log4j.properties (系統找不到指定的文件。), arg[0]這個參數該怎么輸入,為什么老是說找不到文件。我用擺在磁盤log4j.properties的絕對地址代替,文件內容跟你的一樣,沒有報錯。但是打印
          Logger.getRoorLogger().getAllAppenders().hasMoreElements() 總是false,好像沒有加載配置文件一樣,這是什么情況,蛋疼啊  回復  更多評論
            
          # re: 如何使用Log4j?
          2011-07-25 09:31 | Biker
          @Biker
          原來就因為一個字母大寫了 我了個汗 弄了好久才找到 新手就是這么悲劇啊
          log4j.appender.name= 寫成了Log4j.appender.name, 配置里面的log4j的第一個字母l都是小寫  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2011-08-17 14:26 | 土匪
          不錯````頂下  回復  更多評論
            
          # re: 如何使用Log4j?
          2011-09-07 16:47 | tmj
          好,很好,很強大..  回復  更多評論
            
          # re: 如何使用Log4j?
          2012-01-16 16:38 | 莉亞那
          太感謝了!真的很不錯!  回復  更多評論
            
          # re: 如何使用Log4j?
          2012-02-22 15:58 | apiao
          不錯!  回復  更多評論
            
          # re: 如何使用Log4j?
          2012-03-02 13:39 | lhy
          學習了,哈哈,請的真清晰。看了一遍貌似理解了,希望能實現出來。嘻嘻,我現在要用log4j實現用戶的日志記錄,對了這個是我的博客地址:歡迎拍磚:
          http://blog.csdn.net/llhhyy1989  回復  更多評論
            
          # re: 如何使用Log4j?
          2012-04-06 14:32 | 方法
          真的不錯!  回復  更多評論
            
          # re: 如何使用Log4j?
          2012-05-30 17:08 | ooxx
          @patriotlml
          額。。。。。。。。。。。  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2012-12-05 20:54 | java
          @網友
          什么玩意,對著這篇文章也亂加!  回復  更多評論
            
          # re: 如何使用Log4j?
          2013-03-21 17:08 | 3344343
          跟百度上的介紹一樣。。。。  回復  更多評論
            
          # re: 如何使用Log4j?
          2013-05-16 16:18 | qqu
          非常好,簡單易懂。  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2013-06-02 16:17 | xxx
          簡單明了  回復  更多評論
            
          # re: 如何使用Log4j?
          2013-07-23 15:27 | 不二
          @patriotlml
          牛逼  回復  更多評論
            
          # re: 如何使用Log4j?
          2013-07-23 15:42 | 不二
          @DX
          人家在第四條不是寫了么  回復  更多評論
            
          # re: 如何使用Log4j?
          2013-08-12 14:16 | isME
          收藏了,嘎嘎  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2013-10-15 16:06 | 小菜
          非常好,簡單易懂  回復  更多評論
            
          # re: 如何使用Log4j?
          2013-12-02 15:10 | 你爸
          太差勁了。  回復  更多評論
            
          # re: 如何使用Log4j?
          2013-12-02 15:11 | 搜索
          你行你上啊@你爸
            回復  更多評論
            
          # re: 如何使用Log4j?
          2014-05-22 17:33 | zuidaima
          # re: 如何使用Log4j?[未登錄]
          2014-06-21 22:45 | java
          不錯  回復  更多評論
            
          # re: 如何使用Log4j?[未登錄]
          2014-06-21 22:46 | 最代碼
          log4j的教程不錯啊。  回復  更多評論
            
          # re: 如何使用Log4j?
          2014-08-28 08:30 | 劉晨宏
          非常不錯!  回復  更多評論
            
          # re: 如何使用Log4j?
          2014-09-02 15:46 | 心誠則靈
          不錯,淺顯易懂,好文章!  回復  更多評論
            
          # re: 如何使用Log4j?
          2014-10-31 10:54 | login
          謝謝樓主,給新手不少的幫助,  回復  更多評論
            
          正在閱讀:



          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 775359
          • 排名 - 56

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 千阳县| 瑞丽市| 壶关县| 孟津县| 容城县| 繁峙县| 沭阳县| 进贤县| 清丰县| 库伦旗| 正定县| 麟游县| 增城市| 沈阳市| 海原县| 南乐县| 金乡县| 张北县| 临桂县| 晋州市| 十堰市| 健康| 保靖县| 塔河县| 孟州市| 吉木萨尔县| 涪陵区| 原阳县| 新龙县| 波密县| 桐庐县| 南昌县| 鹿邑县| 吉安市| 陆河县| 东平县| 奉新县| 安平县| 大埔区| 南漳县| 固镇县|