log4j在桌面程序和Web程序中的配置

log4j在桌面程序和Web程序中的配置

注意:本文說到的log4j版本爲1.2.15,使用的配置文件是屬性文件(properties),如果這些與您的環境不符則請快速離開,以免耽誤你的寶貴時間。

 

一.log4j在桌面程序中的配置

這個相對簡單了,它的步驟就這樣兩步:

1)將log4j-1.2.15.jar引入到工程的lib目錄中.
2)確保配置文件log4j.properties在程序的代碼目錄(如src目錄,cfg目錄)中,它編譯後應該位於類路徑classes中.

 

log4j.properties示例(可以拷貝使用):

  1. log4j.rootLogger=debug, stdout, R
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. # Pattern to output the caller's file name and line number.
  5. log4j.appender.stdout.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
  6. log4j.appender.R=org.apache.log4j.RollingFileAppender
  7. log4j.appender.R.File=輸出log文件.log
  8. log4j.appender.R.MaxFileSize=1000KB
  9. # Keep one backup file
  10. log4j.appender.R.MaxBackupIndex=1
  11. log4j.appender.R.layout=org.apache.log4j.PatternLayout
  12. log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n

要對這個文件進行修改的話,基本上改兩個地方就行了。

一個是輸出文件名稱,一個是輸出等級設置。

1) 輸出文件名稱:
log4j.appender.R.File=輸出log文件.log

 

2) 輸出等級:
log4j.rootLogger=debug, stdout, R
Debug說明只要是logger.debug以上的都記錄

 

配置到這裏,就結束了。下面請看如何在程序中使用log4j。

 

二.log4j的使用

1) 首先,那個類要用到log4j記錄日誌,就應該爲類添加一個靜態的成員變量loogger,示例如下:

  1. public class Main{
  2.  private static Logger logger = Logger.getLogger(Main.class);
  3.  public static void main(String[] args){
  4.   logger.info("成員管理程序啓動");
  5.   new MemberMngCtrl();  
  6.  }
  7. }

2) 其次,你就可以使用logger.debug ,logger.info, logger.warn, logger.error, logger.fatal等函數(記錄等級依次提高)來記錄日誌內容了,確實是很簡單方便的。
 

三.log4j在Web工程中的配置

與桌面程序一樣的是,properties文件也需要能被編譯到classes(WEB-INF/classes/)中,建議將屬性文件放在特定的目錄下並設置爲源碼目錄,另外放在WEB-INF/src下也不錯。

這一步比前面稍多的是需要配置一個初始化log4j的initServlet,就是在一開始就啓動的Servlet,代碼如下:

  1. public class Log4jInit extends HttpServlet {
  2.     private static final long serialVersionUID = -4499302208753939187L;
  3.     static Logger logger = Logger.getLogger(Log4jInit.class);
  4.      public void init(ServletConfig config) throws ServletException {
  5.          String prefix = config.getServletContext().getRealPath("/");
  6.          String file = config.getInitParameter("log4j");
  7.          String filePath = prefix + file;
  8.          Properties props = new Properties();
  9.          
  10.          try {
  11.              FileInputStream istream = new FileInputStream(filePath);
  12.              props.load(istream);
  13.              istream.close();
  14.              String logFile = prefix + props.getProperty("log4j.appender.R.File");//設置路徑
  15.              props.setProperty("log4j.appender.R.File",logFile);
  16.              
  17.              // 裝入log4j配置信息
  18.              PropertyConfigurator.configure(props);
  19.          } catch (IOException e) {
  20.              System.out.println("Could not read configuration file [" + filePath + "].");
  21.              System.out.println("Ignoring configuration file [" + filePath + "].");
  22.              return;
  23.          }
  24.      }
  25. }

然後,在Web.xml中配置一下,讓它在一開始啓動就可以了。

  1.     <!-- InitServlet -->
  2.     <servlet>
  3.          <servlet-name>log4j-init</servlet-name>
  4.          <servlet-class>
  5.             com.sitinspring.action.Log4jInit
  6.          </servlet-class>
  7.          <init-param>
  8.            <param-name>log4j</param-name>
  9.            <param-value>WEB-INF/classes/log4j.properties</param-value>
  10.          </init-param>
  11.          <load-on-startup>1</load-on-startup>
  12.     </servlet>

引用地址:

http://www.blogjava.net/sitinspring/archive/2008/08/08/220883.html

發佈了29 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章