log4j常用配置總結!

zt80 12年前發布 | 2K 次閱讀 5.2.1版本發布

相信大家對log4j并不陌生,在項目中我們也經常用到.到底log4j是干什么的,我相信也會有很多人拋出這個問號.我給總結兩句話,如有錯誤,還望指正.

log4j 作用:

1.開發階段,排錯.

2.產品階段:記錄程序運行的狀態.

下面我從頭至尾為大家梳理一篇,雖然很基礎,但對于初學者來說還是很有幫助.對log4j非常熟悉的人士可以忽略我這篇文章,當然,你也可以賜教.下面進入正文

1、新建一個java Project 講log4j的jar包添加到java Project

2、新建一個java類:DemoLog4j.java(代碼如下)

import org.apache.log4j.Logger;
public class DemoLog4j {
       private static Logger logger = Logger.getLogger(DemoLog4j.class);
       public static void main(String[] args) {
              logger.debug("this is debug message");
              logger.info("this is info message");
              logger.error("this is error message");
       }
}

3.添加log4j.properties配置文件.

<span style="font-family:Microsoft YaHei;font-size:14px;">#設置輸出級別為debug,并且以TTCC格式在控制臺輸出信息
log4j.rootLogger=debug,appender1
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout</span>

<span style="font-family:Microsoft YaHei;font-size:14px;">#設置日志輸出級別為info,并且將日志信息輸出到C盤的根目錄下</span>

<span style="font-family:Microsoft YaHei;font-size:14px;">log4j.rootLogger=info,appender1</span>

<span style="font-family:Microsoft YaHei;font-size:14px;">log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=c:/demolog4j.log
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

#設置日志輸出級別為error,并且將日志信息以html格式保存在C盤根目錄
log4j.rootLogger=error,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=c:/demolog4j.htm
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

#將日志輸出到多個目的地
log4j.rootLogger=error,appender1,appender2
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender2org.apache.log4j.ConsoleAppender
log4j.appender.appender1.File=c:/demolog4j.htm
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
log4j.appender.appender2layout=org.apache.log4j.TTCCLayout</span>

上面寫的配置及文件中org.apache.log4j.*對應的是具體的類

Logger完成日志信息的處理

Appender設置日志信息的去向

Layout設置日志信息的輸出樣式

配置文件:log4j.properties/log4j.xml

 

Logger可以定義輸出的層次和決定信息是否輸出

Logger輸出的信息室有優先級別的(ll<Trace<Debug<Info<Warn<Error<Fatal<Off)

Appender常用的有以下幾種:

org.apache.log4j.ConsoleAppender(控制臺)

org.apache.log4j.FileAppender(文件)

org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)

org.apache.log4j.RollingFileAppender(文件大小到指定尺寸的時候產生一個新的文件)

org.apache.log4j.WriterAppender(將日志訊息以串流格式發送到任意指定的地方)

org.apache.log4j.JdbcAppender(將日志訊息保存到數據庫中)

Layout常用的有以下幾種

org.apache.log4j.HTMLLayout(以HTML格式形式布局)

org.apache.log4j.SimpleLayout(包含日志訊息的級別和訊息字符串)

org.apache.log4j.TTCLayout(包含日志產生的時間、執行者、類別等等訊息)

org.apache.log4j.PatternLayout(可以靈活的指定布局模式)

 

PatternLayout:用來定制所輸出的日子信息的樣式

%p輸出優先級

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

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

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

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

%d輸出日志時間點和日期或時間,指定格式的方式%d{yyyy-MM-dd HH:mm:ss}

%l輸出日志時間的發生位置,即輸出日志訊息的語句處于它所在的類別的第幾行。

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

%n輸出一個換行符號

log4j.appender.appender2.layout.ConversionParrtern=%r [%t] -%p -%c -%l -%m%n

現在我的程序中有兩個包,我要在其他的包中設置級別為info,而另一個包中設置級別為debug級別,這時候怎么辦呢?

請看:在配置文件的前面將log4j.logger.rootLayout=error,appender1….更改成如下樣式就可以了:log4j.looger.com.sinosoft=info,appender1(其中com.sinosoft為包名).

至此,log4j一些常用的配置就在這里了,夜深了,該洗洗睡了.晚安!

 本文由用戶 zt80 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!