歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Log4j 入門總結

一、Log4j介紹


log4j是類似於java.util.logging的日志作用,即記錄一些有用信息,是一個日志框架;

log4j == log for Java

日志框架的作用:

(1)函數參數是否正確;

(2)軟件發布後,記錄用戶的每一步操作;

(3)記錄程序運行出錯位置;

log4j在http://logging.apache.org/log4j/1.2/download.html 中進行下載;

log4j的api文檔在log4j/site/apidocs/index.html中;

log4j可以改變日志記錄的形式比如HTML、Simple等;

log4j可以改變日志輸出的目的地,比如File、DB等;

 

二、配置使用Log4j

 

原本是一個zip包,取出jar包,並在Eclipse的某個Project build path導入;

 

三、簡單的使用Log4j

 

log4j需要配置文件log4j.properties進行配置,log4j.properties位於src目錄下;


log4j.properties規則:

(1)鍵值對;

(2)#代表注釋;

(3)不支持中文;


Log4jDemo.java


[java]
  1. package org.impl;  
  2.   
  3. import org.apache.log4j.Logger;  
  4.   
  5. public class Log4jDemo {  
  6.     public static void main(String args[]){  
  7.         Logger logger = Logger.getLogger(org.impl.Log4jDemo.class);  
  8.         logger.debug("debug");  
  9.         logger.info("info");  
  10.         logger.error("error");  
  11.     }  
  12. }  
log4j.properties


[html]
  1. log4j.rootLogger=debug,appender1  
  2. log4j.appender.appender1=org.apache.log4j.ConsoleAppender  
  3. log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout  
顯示結果:

[html]
  1. [main] DEBUG org.impl.Log4jDemo - debug  
  2. [main] INFO org.impl.Log4jDemo - info  
  3. [main] ERROR org.impl.Log4jDemo - error  
這樣一個簡單的log4j應用。

 

這個配置文件的意思是:

rootLogger表示最低顯示等級,即顯示debug等級及以上的信息;

appender1表示一個名字;

ConsoleAppender表示輸出到控制台,如果想要輸出到文件,則可以使用FileAppender並制定文件名稱;

TTCCLayout是一種布局方式;

debug等級表示在編譯開發階段的信息;

error等級表示錯誤信息;

info等級表示一般的信息;

 

如果看到如下信息:

[html]
  1. log4j:WARN No appenders could be found for logger (org.impl.Log4jDemo).  
  2. log4j:WARN Please initialize the log4j system properly.  
  3. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.  
表示配置文件位置不正確,應該放到src目錄下!


四、逐步了解Log4j

任務1:將日志輸出到指定文件

只需要修改配置文件即可,配置文件修改為:


[html]
  1. log4j.rootLogger=debug,appender1  
  2. log4j.appender.appender1=org.apache.log4j.FileAppender  
  3. log4j.appender.appender1.File=./java0.log  
  4. log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout  

這樣就指定了日志輸出到工程目錄下的java0.log文件中;

注意:這個日志文件時追加類型的。

 

任務2:將日志輸出以HTML格式輸出(效果很好!)

修改配置文件為:

[html]
  1. log4j.rootLogger=debug,appender1  
  2. log4j.appender.appender1=org.apache.log4j.FileAppender  
  3. log4j.appender.appender1.File=./java0.html  
  4. log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout  

即可;

 

任務3:同時輸出到控制台和文件

修改配置文件為:

[html]
  1. log4j.rootLogger=debug,appender1,appender2  
  2. log4j.appender.appender1=org.apache.log4j.FileAppender  
  3. log4j.appender.appender1.File=./log4j.HTML  
  4. log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout  
  5.   
  6. log4j.appender.appender2=org.apache.log4j.ConsoleAppender  
  7. log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout  


五、Log4j核心組件

 

1.Logger

 

設定了顯示日志的級別;

常用級別為debug,info,warn,error,fatal;

 

2.Appender

 

設定了日志的輸出目的;

常用有:

(1)ConsoleAppender

(2)FileAppender

(3)DailyRollingFileAppender  一天換一個文件

(4)JdbcAppender   輸出到數據庫
 

3.Layout

 

設定日志的內容格式;

 

常用有:

(1)HTMLLayout;

(2)TTCCLayout;

(3)PatternLayout;制定布局樣式

 

如果要設置PatternLayout,必須將配置文件修改為以下形式:


[html]
  1. log4j.rootLogger=debug,appender1,appender2  
  2. log4j.appender.appender1=org.apache.log4j.FileAppender  
  3. log4j.appender.appender1.File=./log4j.HTML  
  4. log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout  
  5.   
  6. log4j.appender.appender2=org.apache.log4j.ConsoleAppender  
  7. log4j.appender.appender2.layout=org.apache.log4j.PatternLayout  
  8.   
  9. log4j.appender.appender2.layout.ConversionPattern= 格式名稱  


格式形式如下:


%p:日志優先級(debug、info)

%t:輸出日志的線程名;

%d{yyyy-MM-dd HH:mm:ss}:時間;

%c:所屬類名;

%r:日志輸出所花時間;

%n:換行;

%l:日志所在行;

%m:信息;

%M:方法;

 

比如:


%r [%t] -%l %p %d{yyyy-MM-dd HH:mm:ss} %n

顯示如下:

3 [main] -org.impl.Log4jDemo.main(Log4jDemo.java:10) ERROR 2012-01-11 17:11:37


3表示所花時間;

[main]表示線程;

org.impl.Log4jDemo.main(Log4jDemo.java:10) 表示   %l   ;

ERROR表示%p;

Log4j 的詳細介紹:請點這裡
Log4j 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved