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

Log4j 完整配置與使用步驟指南

     編輯:Java 相關知識

環境準備

  1. 將 log4j-1.2.8.jar 加入類別路徑
  2. 在 Web 應用啟動前完成初始化(透過 Servlet)

初始化 Servlet

public class Log4JInit extends HttpServlet {
  public void init() throws ServletException {
    String prefix = getServletContext().getRealPath("/");
    String file = getServletConfig().getInitParameter("log4j-config-file");
    if (file != null) {
      PropertyConfigurator.configure(prefix + file);
    }
  }
  // doGet/doPost 空實作
}

web.xml 配置

<servlet>
  <servlet-name>log4jinit</servlet-name>
  <servlet-class>com.iss.common.util.Log4JInit</servlet-class>
  <init-param>
    <param-name>log4j-config-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,確保最早初始化。log4j.properties 放置於 WEB-INF 目錄。

log4j.properties 完整配置範例

# 根記錄器:DEBUG 以上輸出至控制台
log4j.rootLogger=debug, stdout

# 分級記錄器
log4j.logger.debug=debug, R
log4j.logger.info=info, s
log4j.logger.error=error, k

# 控制台輸出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=(%F:%L) - %m%d%n

# DEBUG 級別:每日滾動檔案
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=c:/webapps/debugInfo.log
log4j.appender.R.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%F:%L] - %m \r\n

# INFO 級別:固定大小滾動(100KB,保留 1 個備份)
log4j.appender.s=org.apache.log4j.RollingFileAppender
log4j.appender.s.File=c:/webapps/info.log
log4j.appender.s.MaxFileSize=100KB
log4j.appender.s.MaxBackupIndex=1
log4j.appender.s.layout=org.apache.log4j.PatternLayout
log4j.appender.s.layout.ConversionPattern=%p %t %c - %m%d%n

# ERROR 級別:每日滾動
log4j.appender.k=org.apache.log4j.DailyRollingFileAppender
log4j.appender.k.File=C:/Program Files/Apache Tomcat 4.0/webapps/PSA/log/error_8080.log
log4j.appender.k.DatePattern='.'yyyy-MM-dd'.txt'
log4j.appender.k.layout=org.apache.log4j.PatternLayout
log4j.appender.k.layout.ConversionPattern=%d [%F:%L] - %m \r\n

Java 程式碼中使用

// 類別成員
private static final Logger debugLog = Logger.getLogger("debug");
private static final Logger infoLog = Logger.getLogger("info");
private static final Logger errorLog = Logger.getLogger("error");

// 使用
debugLog.debug("除錯訊息");   // 寫入 debugInfo.log
infoLog.info("資訊訊息");     // 寫入 info.log
errorLog.error("錯誤訊息");   // 寫入 error_8080.log

關鍵點總結

  • 三個 Logger 名稱(debug、info、error)對應 log4j.logger.xxx 設定
  • Appender 類型:ConsoleAppender、DailyRollingFileAppender(按日期)、RollingFileAppender(按大小)
  • ConversionPattern 格式化輸出:%d 日期、%F 檔案、%L 行號、%m 訊息、%p 級別、%t 執行緒、%c 類別
  • 將 .properties 集中管理,利於維護

結語

Log4j 透過 Servlet 初始化、分級記錄器與多樣 Appender,實現靈活的日誌管理。正確配置 rootLogger、分級 Logger 與 Appender,即可依級別輸出至控制台、每日滾動檔案或固定大小檔案,滿足開發除錯與生產監控需求。

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