首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JSP 整合 Log4j 2.x 記錄日誌:從導入 JAR 到配置輸出的完整步驟

     編輯:程式設計綜合問答

環境準備

  1. 建立 Web 專案(Maven 推薦)。
  2. 導入 Log4j 2 依賴(log4j-api、log4j-core、log4j-web)。

配置檔:src/main/resources/log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
    <RollingFile name="File" fileName="${sys:catalina.base}/logs/app.log"
                 filePattern="${sys:catalina.base}/logs/app-%d{yyyy-MM-dd}.log.gz">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
      </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="File"/>
    </Root>
    <!-- 業務專用 Logger,單獨檔案 -->
    <Logger name="pay-log" level="INFO" additivity="false">
      <AppenderRef ref="File"/>
    </Logger>
  </Loggers>
</Configuration>

JSP 中使用

<%@ page import="org.apache.logging.log4j.LogManager, org.apache.logging.log4j.Logger" %>
<%
  Logger logger = LogManager.getLogger("pay-log"); // 或 getLogger(this.getClass())
  logger.info("使用者 {} 發起付款,金額 {}", userId, amount);
  try { ... } catch (Exception e) { logger.error("付款失敗", e); }
%>

關鍵點

  • log4j-web 模組會自動在 ServletContext 初始化/銷毀時啟動/關閉 Log4j,**無需手動配置 Listener**。
  • Tomcat 部署時,${sys:catalina.base} 自動解析為 Tomcat 根目錄,日誌寫入 $CATALINA_BASE/logs/。
  • 避免在 JSP 大量寫業務邏輯,建議移至 Service/Controller,JSP 僅負責渲染。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved