log4j常用配置總結!
相信大家對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一些常用的配置就在這里了,夜深了,該洗洗睡了.晚安!