log4j 1.2x

log4j1.2xjava

1.全名  logging tools for(four) java
 apache



2.日誌顯示方式  
 
app

   a. 打印到控制檯 (比較便捷,適合程序開發調試階段,但持久化能力不足)socket

   b. 保存到文件工具

   c. 保存成每日郵件spa

   d. 保存成網頁debug

   e. 保存到某個socket位置 


3.日誌級別:
調試

 1. DEBUG             (the least serious)                      操做的細節     日誌

 2. INFO                                                                   處於哪一個階段,正在作什麼,作完以後結果如何繼承

 3. WARN                                                                警告,表示可能出現錯誤

 4. ERROR                                                              出現了錯誤,但系統能應付,須要立刻尋求糾正

 5. FATAL             (the most serious)                      出現了致命錯誤,系統沒法繼續運行,須要中止工做,等待修復

 
 4.核心:
 

   日誌器       logger

   追加器       appender

   風格化工具   layout

5.構成
 

           log4j-1.2.14.jar

           log4j.properties
 

 content:
###################################################################

#

# Log4J Settings for log4j 1.2.x (via jakarta-commons-logging)

#

# The five logging levels used by Log are (in order):

#

#   1. DEBUG (the least serious)

#   2. INFO

#   3. WARN

#   4. ERROR

#   5. FATAL (the most serious)

 

 

#  Set root logger level to WARN and append to stdout
根日誌器,其它日誌器若是沒有特殊指明其日誌遊戲規則,那麼將默認繼承根日誌器的規則。 
# rootLogger是在系統中,全部Log4j日誌器的父類,相似於日誌器的Object. 
log4j.rootLogger=warn,appender1,appender2,....appenderN.. (第一個參數爲日誌級別,後面的是追加器)

log4j.rootLogger=Error, stdout  

#某個包下面的全部類以及子包類統一設置日誌操做規則

log4j.logger.edu.fjnu=info


#定製本身的日誌說明,下例表示edu.fjnu下面包的日誌輸出信息是debug級別 
#
 爲某個類的日誌器定義個性化設置       log4j.logger.edu.fjnu.Log4jTest=info,appender1,appender2... 
 log4j.logger.edu.fjnu.Log4jTest=debug, stdout  
 


#  stdout  : standard out  標準輸出(追加器名稱)      org.apache.log4j.ConsoleAppender   這是控制檯追加器               

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 

# Pattern to output the caller's file name and line number.
#  %d:爲時間(date)   %5p:%5表明最長寬度是5 ( %-5p  表示右對齊 )  p爲日誌級別   %c 爲類名(class)   %m   爲消息本體(message) %n  爲換行 

log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n

 

# Print only messages of level ERROR or above in the package noModule.

log4j.logger.noModule=FATAL

 

#log4j.logger.com.opensymphony.xwork2=DEBUG

#log4j.logger.org.apache.struts2=DEBUG

 

############################################################################

6. log4j日誌器的建立

 

   1)一個類僅僅擁有一個日誌器

      private static final Logger logger = Logger.getLogger(Test.class);

 

7. appender的設置
 
//制定控制檯追加器,名爲stdou 

   log4j.appender.stdout=org.apache.log4j.ConsoleAppender

   log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

   log4j.appender.stdout.layout.ConversionPattern= %d{yyyyMMdd HH:mm:ss,SSS} %5p [%c] %m%n


//制定 每日滾動文件追加器名爲file,可按時間建立日誌文件即會天天一文件的歸檔

   log4j.appender.file=org.apache.log4j.DailyRollingFileAppender

   log4j.appender.file.File=d:\a.log                 //日誌文件保存的路徑

   log4j.appender.file.layout=org.apache.log4j.PatternLayout

   log4j.appender.file.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} [%C:%M] - %m%n 

 


8.example:

package edu.fjnu.test;
import org.apache.log4j.Logger;

public class Log4jTest {

 

private static final Logger logger = Logger.getLogger(Log4jTest.class);

 

public static void main(String[] args) {

// 查看當前日誌級別是否爲info 級別,若是是就打印

if (logger.isInfoEnabled())

logger.info("開始工做了.....");

 

System.out.println("忙了一天了,真累");

 

if (logger.isInfoEnabled())

logger.info("下班了....");

}

 

}

相關文章
相關標籤/搜索