程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中log4j控制寫入日志開關

Java中log4j控制寫入日志開關

編輯:關於JAVA

我們平時的日志一般使用最多的就是java.util.logger和log4j了。

這裡因為要在外部靈活配置,所以我們采用log4j來控制。

首先我們需要log4j.jar和log4j.properties

現在我們在程序中寫日志輸出

引入import org.apache.log4j.Logger;

Logger logger = Logger.getLogger("這裡的名字隨便取,一般是本類類名,這裡是CheckUserServlet");   
//Log4j中將要輸出的Log信息定義了5種級別,依次為DEBUG、INFO、WARN、ERROR和FATAL,當輸出時,只有級別高過配置中規定的級別的信息才能真正的輸出,這樣就很方便的來配置不同情況下要輸出的內容,而不需要更改代碼   
logger.info("hello,world");

接下來,關鍵的了。

配置log4j.properties文件,如下

log4j.logger.CheckUserServlet=INFO,A   
# log4j.logger.CheckUserServlet裡的CheckUserServlet是我剛在程序裡取的名字   
log4j.appender.A=org.apache.log4j.DailyRollingFileAppender   
log4j.appender.A.File=d:/test.log   
#這裡將日志輸出到D盤的test.log裡,具體配置大家看下面的詳細說明 ,還可以用${webapp.root}表示tomcat根目錄,具體大家試試吧 
log4j.appender.A.layout=org.apache.log4j.PatternLayout   
log4j.appender.A.layout.ConversionPattern=%d%m%n

現在我們就可以將日志輸出到D盤的test.log文件裡了。

但是,要關閉日志寫入,應該怎麼辦啊?

除了上面的5種級別,我們還可以設置成這樣:

log4j.logger.CheckUserServlet=INFO,A

將這裡的info級別設置成OFF,這樣就可以關閉日志寫入啦。

當然上面的大家可以靈活配置,配置成多個日志輸出的,只要增加程序Logger.getLogger方法,裡面的名字另起一個即可,再在log4j.properties裡多寫一段上面的配置,改掉裡面的名字,這樣就可以輸出不同的日志文件了。

下面是log4j配置裡的說明:

#將等級為debug的日志信息輸出到stdout這個目的地   
#等級可分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL   
#Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG   
log4j.rootLogger=INFO,stdout   
       
#定義名為stdout的輸出端是哪種類型   
#org.apache.log4j.ConsoleAppender(控制台)   
#org.apache.log4j.FileAppender(文件)   
#org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)   
#org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)   
#org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)   
log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
       
#定義名為stdout的輸出端的layout是哪種類型   
#org.apache.log4j.HTMLLayout(以HTML表格形式布局)   
#org.apache.log4j.PatternLayout(可以靈活地指定布局模式)   
#org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串)   
#org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)   
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
       
#如果使用pattern布局就要指定的打印信息的具體格式ConversionPattern   
#%m 輸出代碼中指定的消息   
#%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL   
#%r 輸出自應用啟動到輸出該log信息耗費的毫秒數   
#%c 輸出所屬的類目,通常就是所在類的全名   
#%t 輸出產生該日志事件的線程名   
#%n 輸出一個回車換行符,Windows平台為“rn”,Unix平台為“n”   
#%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式   
#比如:%d{yyyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
#%l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。   
#[QC]是log信息的開頭,可以為任意字符,一般為項目簡稱。   
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved