天天看點

log4j與log4j.properties的配置

摘要:   

  一、配置步驟

1、  在應用程式中使用log4j

2、  把log4j-*.*jar放入classpath變量中

3、  建立一個配置檔案log4j.properties,放于bin檔案下

二、配置log4j.properties

建立一個配置檔案log4j.properties:

log4j.rootlogger=warn, 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

# print the date in iso 8601 format

log4j.appender.stdout.layout.conversionpattern=%d [%t] %-5p %c - %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

# print only messages of level warn or above in the package com.foo.

log4j.logger.com.foo=warn

編譯并運作testlog4j會在目錄下生成一個example.log的檔案,螢幕也會輸出資訊,這證明已經你已經成功了第一步。

下面解釋下這些配置檔案

log4j.rootlogger = [ level ], appendname1, appendname2, …appendnamen。同一個記錄器可有多個輸出端。

ps:level的級别(此級别可以自定義,系統預設提供了以下級别)

debug//調試資訊

info//一般資訊

warn//警告資訊

error//錯誤資訊

fatal//緻命錯誤資訊

上面列出的就是所謂log4j的輸出級别,log4j建議隻使用4個級别,它們從上到下分别為error、warn、info、debug,假設你定義的級别是info,那麼error和warn的日志可以顯示而比他低的debug資訊就不顯示了。

log4j.appender.appendername = fully.qualified.name.of.appender.class。log4j提供了以下幾種常用的輸出目的地:

org.apache.log4j.consoleappender,将日志資訊輸出到控制台

org.apache.log4j.fileappender,将日志資訊輸出到一個檔案

org.apache.log4j.dailyrollingfileappender,将日志資訊輸出到一個,并且每天輸出到一個新的日志檔案

org.apache.log4j.rollingfileappender,将日志資訊輸出到一個檔案,通過指定檔案的的尺寸,當檔案大小到達指定尺寸的時候會自動把檔案改名,如名為example.log的檔案會改名為 example.log.1,同時産生一個新的example.log檔案。如果新的檔案再次達到指定尺寸,又會自動把檔案改名為 example.log.2,同時産生一個example.log檔案。依此類推,直到example.log. maxbackupindex, maxbackupindex的值可在配置檔案中定義。

org.apache.log4j.writerappender,将日志資訊以流格式發送到任意指定的地方。

org.apache.log4j.jdbc.jdbcappender,通過jdbc把日志資訊輸出到資料庫中。

log4j提供了一下幾種布局:

org.apache.log4j.htmllayout,以html表格形式布局

org.apache.log4j.patternlayout,可以靈活地指定布局模式

org.apache.log4j.simplelayout,包含日志資訊的級别和資訊字元串

定義一個patternlayout布局的語句為:

log4j.appender.stdout.layout.conversionpattern=%d{absolute} %5p %c{1} - %m%n

ps:conversionpattern參數的格式含義

格式名 含義

%c 輸出日志資訊所屬的類的全名

%d 輸出日志時間點的日期或時間,預設格式為iso8601,也可以在其後指定格式,比如:%d{yyy-mm-dd hh:mm:ss },輸出類似:2002-10-18- 22:10:28

%f 輸出日志資訊所屬的類的類名

%l 輸出日志事件的發生位置,即輸出日志資訊的語句處于它所在的類的第幾行

%m 輸出代碼中指定的資訊,如log(message)中的message

%n 輸出一個回車換行符,windows平台為“\r\n”,unix平台為“\n”

%p 輸出優先級,即debug,info,warn,error,fatal。如果是調用debug()輸出的,則為debug,依此類推

%r 輸出自應用啟動到輸出該日志資訊所耗費的毫秒數

%t 輸出産生該日志事件的線程名

三、在代碼中使用log4j

我們在需要輸出日志資訊的類中做如下的三個工作:

1、導入所有需的log4j類:

import org.apache.log4j.logger;

import org.apache.log4j.propertyconfigurator;

2、在自己的類中定義一個私有靜态類成員:

static logger logger = logger.getlogger(testlog4j.class)

3、使用類的成員方法輸出日志資訊:

   if (log.isdebugenabled())

     {

        log.debug("111");

     }

   if (log.isinfoenabled())

    {

       log.info("222");

    }

   if (log.iswarnenabled())

       log.warn("333");

   if (log.iserrorenabled())

      log.error("444");

   if (log.isfatalenabled())

      log.fatal("555")

    }  

特别說明:尊重作者的勞動成果,轉載請注明出處哦~~~

http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt233