Java中log4j控制寫入日誌開關

 本文原文出自個人我的網站【思考者日記】原創做品,容許轉載,轉載時請務必以超連接形式標明文章 原始出處 、做者信息和本聲明。html

 

上篇說到tomcat jndi(鏈接池)的使用方法,此次的項目裏還使用到了一個日誌開關配置,主要是方便客戶查看。java

咱們平時的日誌通常使用最多的就是java.util.logger和log4j了。web

這裏由於要在外部靈活配置,因此咱們採用log4j來控制。sql

首先咱們須要log4j.jar和log4j.propertiesapache

QQ截圖20130326234525.jpg

 

如今咱們在程序中寫日誌輸出tomcat

引入import org.apache.log4j.Logger;app

 

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

接下來,關鍵的了。webapp

配置log4j.properties文件,以下ide

 

  
  
  
  
  1. log4j.logger.CheckUserServlet=INFO,A   
  2. # log4j.logger.CheckUserServlet裏的CheckUserServlet是我剛在程序裏取的名字   
  3. log4j.appender.A=org.apache.log4j.DailyRollingFileAppender   
  4. log4j.appender.A.File=d:/test.log   
  5. #這裏將日誌輸出到D盤的test.log裏,具體配置你們看下面的詳細說明 ,還能夠用${webapp.root}表示tomcat根目錄,具體你們試試吧 
  6. log4j.appender.A.layout=org.apache.log4j.PatternLayout   
  7. log4j.appender.A.layout.ConversionPattern=%d%m%n   

如今咱們就能夠將日誌輸出到D盤的test.log文件裏了。佈局

 

可是,要關閉日誌寫入,應該怎麼辦啊?

除了上面的5種級別,咱們還能夠設置成這樣:

 

  
  
  
  
  1. log4j.logger.CheckUserServlet=INFO,A   

將這裏的info級別設置成OFF,這樣就能夠關閉日誌寫入啦。

固然上面的你們能夠靈活配置,配置成多個日誌輸出的,只要增長程序Logger.getLogger方法,裏面的名字另起一個便可,再在log4j.properties裏多寫一段上面的配置,改掉裏面的名字,這樣就能夠輸出不一樣的日誌文件了。

 

下面是log4j配置裏的說明:

 

  
  
  
  
  1. #將等級爲debug的日誌信息輸出到stdout這個目的地   
  2. #等級可分爲OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL   
  3. #Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG   
  4. log4j.rootLogger=INFO,stdout   
  5.    
  6. #定義名爲stdout的輸出端是哪一種類型   
  7. #org.apache.log4j.ConsoleAppender(控制檯)   
  8. #org.apache.log4j.FileAppender(文件)   
  9. #org.apache.log4j.DailyRollingFileAppender(天天產生一個日誌文件)   
  10. #org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)   
  11. #org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)   
  12. log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
  13.    
  14. #定義名爲stdout的輸出端的layout是哪一種類型   
  15. #org.apache.log4j.HTMLLayout(以HTML表格形式佈局)   
  16. #org.apache.log4j.PatternLayout(能夠靈活地指定佈局模式)   
  17. #org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串)   
  18. #org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)   
  19. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
  20.    
  21. #若是使用pattern佈局就要指定的打印信息的具體格式ConversionPattern   
  22. #%m 輸出代碼中指定的消息   
  23. #%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL   
  24. #%r 輸出自應用啓動到輸出該log信息耗費的毫秒數   
  25. #%c 輸出所屬的類目,一般就是所在類的全名   
  26. #%t 輸出產生該日誌事件的線程名   
  27. #%n 輸出一個回車換行符,Windows平臺爲「rn」,Unix平臺爲「n」   
  28. #%d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也能夠在其後指定格式   
  29. #好比:%d{yyyy MMM dd HH:mm:ss,SSS},輸出相似:2002年10月18日 22:10:28,921   
  30. #%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。   
  31. #[QC]是log信息的開頭,能夠爲任意字符,通常爲項目簡稱。   
  32. log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n   

 本文原文出自個人我的網站【思考者日記】原創做品,容許轉載,轉載時請務必以超連接形式標明文章 原始出處 、做者信息和本聲明。

相關文章
相關標籤/搜索