log4j使用案例

來源:互聯網
上載者:User

簡單例子,再回頭來看參數


      1

C
盤下面建立一個
Log4jTest.java,
內容如下
:
            import org.apache.commons.logging.Log;
            import org.apache.commons.logging.LogFactory;
            public class Log4jTest
            {
                  static Log log = LogFactory.getLog(Log4jTest.class.getName());
                  public static void main(String[] args)
                  {
                        log.info("
我在測試
");
                        int x = 0;
                        try
                        {
                              x = 5 / x;
                        }
                        catch (Exception e)
                        {
                              log.info(e);
                              log.debug(e);
                        }
                  }
            }

      2
拷貝
JAR
包到
C

(log4j-1.2.15.jar

commons-logging.jar)
            log4j-1.2.15.jar
可以到去
http://logging.apache.org/log4j/
下載
;
            commons-logging.jar(
當你給工程加上
struts
架構時
,lib
會自動產生
);

      3

C
盤根目錄建立一個檔案
log4j.properties,
內容如下
:
            log4j.rootLogger=debug,
A1
,

A2

            log4j.appender.A1
=org.apache.log4j.ConsoleAppender
            log4j.appender.A1
.layout=org.apache.log4j.PatternLayout
            log4j.appender.A1
.layout.ConversionPattern=%5p [%d{yyyy-MM-dd HH:mm:ss,SSS}] (%F:%L) - %m%n

            log4j.appender.A2
=org.apache.log4j.RollingFileAppender
            log4j.appender.A2
.File=example.log
            log4j.appender.A2
.MaxFileSize= 100KB
            log4j.appender.A2
.MaxBackupIndex=1
            log4j.appender.A2
.layout=org.apache.log4j.PatternLayout
            log4j.appender.A2
.layout.ConversionPattern=%p %t %c - %m%n

      4
進入
cmd
控制台
,

C
盤根目錄下
,
執行下列命令

            javac -classpath c:/log4j-1.2.15.jar;c:/commons-logging.jar Log4jTest.java
斷行符號

            java -classpath .;c:/log4j-1.2.15.jar;c:/commons-logging.jar Log4jTest
斷行符號

      5
控制台輸出內容如下
:
            INFO [main] (Log4jTest.java:12) -
我在測試

            INFO [main] (Log4jTest.java:20) - java.lang.ArithmeticException: / by zero
            DEBUG [main] (Log4jTest.java:21) - java.lang.ArithmeticException: / by zero

      6
這時你會看到在
C
盤根目錄出來了
example.log
檔案
,
內容如下
:
            INFO main Log4jTest -
我在測試

            INFO main Log4jTest - java.lang.ArithmeticException: / by zero
            DEBUG main Log4jTest - java.lang.ArithmeticException: / by zero


設定檔的參數

(

把上面的設定檔分為三大塊

)


      1
第一塊
:log4j.rootLogger=debug,A1,A2
            a)log4j.rootLogger
後面的第一個參數
debug(
這個值
(
顯示的資訊優先順序
)
的取值範圍為
6

:ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF)
            b)
上面例子中設定了
DEBUG,
則我程式中寫的
log.debug(),log.info(),log.warn()...
層級
>=DEBUG
都會顯示出來
;
            c)
如果你設定了
INFO,
那麼我程式中寫的
log.debug()
是不會被顯示出來的
,log.info(),log.warn()...
這些內容才會顯示出來
;
            d)A1,A2
兩個為
appender
的名稱
(

,
你可以每一個名稱都對應一塊內容
),
這兩個參數結合第二
,
三大塊內容來看
;

      2
第二塊
:
這一塊是用來定義
A1

appender
的幾個參數

            a)log4j.appender.A1=org.apache.log4j.ConsoleAppender(
指明
A1
的顯示方法
,
有下面幾種取值
)
                 
  
org.apache.log4j.ConsoleAppender(
控制台
)
                 
  
org.apache.log4j.FileAppender(
檔案
)
                 
  
org.apache.log4j.DailyRollingFileAppender(
每天產生一個記錄檔
)
                 
  
org.apache.log4j.RollingFileAppender(
檔案大小到達指定尺寸的時候產生新檔案
)
                 
  
org.apache.log4j.WriterAppender(
將日誌資訊以流格式發送到任意指定的地方
)

            b)log4j.appender.A1.layout=org.apache.log4j.PatternLayout(
指明
A1
的顯示資訊的類型
)
                 
  
org.apache.log4j.HTMLLayout(

HTML
表格形式布局
)
                 
  
org.apache.log4j.PatternLayout(
可以靈活地指定配置模式
)
                 
  
org.apache.log4j.SimpleLayout(
包含日誌資訊的層級和資訊字串
)
                 
  
org.apache.log4j.TTCCLayout(
包含日誌產生的時間、線程、類別等等資訊
)

            c)log4j.appender.A1.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n(
指明
A1
的顯示資訊的格式
)
                 
  
%p
輸出優先順序,即
ALL,DEBUG,INFO,WARN,ERROR,FATAL,OFF;
                 
  
%r
輸出自應用啟動到輸出該
log
資訊耗費的毫秒數
;
                 
  
%c
輸出所屬的類目,通常就是所在類的全名
;
                 
  
%t
輸出產生該日誌事件的線程名
;
                 
  
%n
輸出一個斷行符號分行符號,
Windows
平台為
"/r/n"

Unix
平台為
"/n";
                 
  
%d
輸出日誌時間點的日期或時間,預設格式為
ISO8601
,也可以在其後指定格式
,

(yyyy-MM-dd HH:mm:ss,SSS);
                 
  
%L
輸出代碼中的行數
;
                 
  
%l
輸出代碼中的所屬檔案中的方法下面的行數
;
                 
  
%F
輸出代碼中的檔案名稱
;
                 
  
%m
輸出代碼中的行數
;

                 
  切記

,
上面的參數是區分大小寫
;

 

原文連結地址:http://blog.csdn.net/lj408226003/archive/2009/02/03/3858462.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.