首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JBuilder2005 + JBoss 4.0 開發 Session Bean 實戰(二):Log4j 整合配置詳解

     編輯:Java 相關知識

JBuilder2005 + JBoss 4.0 開發 Session Bean 實戰(二):Log4j 整合配置詳解

承接第一篇(環境安裝與 IDE 配置),本篇詳細記錄如何在專案中整合 Log4j:引入 Jar、建立 Web Module、配置屬性檔、編寫初始化 Servlet、修改 web.xml,實現企業級日誌記錄。

1. 準備 Log4j 庫

  • 版本:logging-log4j-1.2.9(解壓至任意目錄,如 D:\logging-log4j-1.2.9)。
  • 核心 Jar:dist/lib/log4j-1.2.9.jar。

2. 建立專案並引入庫

  1. JBuilder New Project,名稱 Trader,目錄 E:\projects\Trader。
  2. 專案目錄下建 lib 資料夾,複製 log4j-1.2.9.jar 至其中。
  3. 專案右鍵 Properties → Paths → Required Libraries → Add → Archives 選擇該 Jar,確定。

3. 建立 Web Module (WAR)

  1. New → Web → Web Module (WAR),選 Create Empty Web Module,名稱 WebTrader。
  2. 左側專案樹選 WebTrader → Module Directory → WEB-INF,右鍵 New → File,名稱 log4j.properties。

4. log4j.properties 完整配置

# Root logger 配置
log4j.rootCategory=DEBUG, A1

# A1: 檔案輸出 Appender
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.File=${jboss.server.home.dir}/log/trader.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.A1.MaxFileSize=100KB

關鍵點:使用 JBoss 系統屬性 ${jboss.server.home.dir} 動態解析日誌路徑,避免硬編碼;MaxFileSize 啟用滾動(需配合 RollingFileAppender 完整生效,此處為示範)。

5. 編寫 Log4j 初始化 Servlet

  1. 專案樹 Trader.jpx 右鍵 New → Package:com.inspiresky.trader.init。
  2. 包右鍵 New → Class:Log4jInit。
package com.inspiresky.trader.init;
import org.apache.log4j.PropertyConfigurator;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;

public class Log4jInit extends HttpServlet {
    public void init() throws ServletException {
        String prefix = getServletContext().getRealPath("/");
        String file = getInitParameter("log4j-init-file");
        if (file != null) {
            PropertyConfigurator.configure(prefix + file);
        }
    }
    public void doGet(HttpServletRequest req, HttpServletResponse res) {}
    public void destroy() {}
}

6. 修改 web.xml 註冊初始化 Servlet

在 <display-name>WebTrader</display-name> 之後插入:

<servlet>
  <servlet-name>log4j-init</servlet-name>
  <servlet-class>com.inspiresky.trader.init.Log4jInit</servlet-class>
  <init-param>
    <param-name>log4j-init-file</param-name>
    <param-value>WEB-INF/log4j.properties</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

load-on-startup>1 確保 Web 應用啟動時最先初始化 Log4j,後續 Servlet/EJB 即可直接使用 Logger.getLogger()。

7. 驗證

部署 WebTrader.war 至 JBoss,啟動伺服器,檢查 ${jboss.server.home.dir}/log/trader.log 是否生成並記錄啟動日誌。

下一步

Log4j 已就緒,下一篇將使用 EJB Designer 視覺化建立 Session Bean,並在 Bean 中注入 _logger 記錄生命週期事件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved