posts - 0,  comments - 17,  trackbacks - 0
          來源:java涂鴉

          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 2008-02-02 09:36 xyz 閱讀(276) 評論(0)  編輯  收藏 所屬分類: 網絡文摘

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          留言簿

          隨筆檔案(1)

          文章分類(44)

          文章檔案(46)

          收藏夾(1)

          Adobe

          AOP

          API

          appServer

          BI

          c

          • c-free
          • codeblocks
          • codelite
          • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
          • codelite官網
          • dev-c++
          • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
          • GCC
          • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

          Cache

          CMS

          DB

          eclipse

          FreeMarker

          hibernate

          html5

          ibatis

          java

          jquery

          js

          json

          Linux

          Log

          mail server

          mobile

          mysql

          oauth

          openID

          other

          PHP

          portal

          report

          Scheduler

          schema

          Security

          SOA

          spring

          struts

          UI原型設計

          w3c

          Wap

          webservice

          xml

          供應鏈管理

          博客鏈接

          好網站

          工作流

          開源網

          招聘

          插件下載

          操作系統

          構建可伸縮的系統

          構建工具

          測試

          • IETest
          • IE官網
          • OpenSTA
          • Siege
          • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

          游戲

          源碼托管

          經營

          資源

          金融/財務

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 金塔县| 陵川县| 拉萨市| 双城市| 阜宁县| 共和县| 霍林郭勒市| 湖州市| 广宁县| 泾阳县| 湟源县| 贡嘎县| 梁河县| 灵石县| 杭锦旗| 和林格尔县| 牡丹江市| 锡林郭勒盟| 崇仁县| 本溪市| 福海县| 凭祥市| 灌南县| 兴城市| 雅江县| 瑞金市| 新乐市| 黔江区| 巴马| 丰都县| 满洲里市| 通城县| 古浪县| 罗江县| 特克斯县| 长海县| 新乡县| 防城港市| 盈江县| 涿鹿县| 延庆县|