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=org.apache.log4j.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")

 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章