簡體   English   中英

如何使用 Log4j 為 jsp 頁面創建日志文件

[英]How create log file using Log4j for jsp page

我想使用 Log4j 創建日志文件。 我想創建這樣的日志。

“2018-10-31 21:05:51,481 - 調試 - 你點擊按鈕”

我下載了log4j-2.3-bin

添加文件log4j-api-2.3.jarlog4j-api-2.3.jar ,單擊“構建路徑”並創建log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
  <Configuration status="DEBUG">
   <Appenders>
     <Console name="Console" target="SYSTEM_OUT">
       <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
     </Console>
     <File name="MyFile" fileName="all.log" immediateFlush="false" append="false">
       <.PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
     </File>
   </Appenders>
   <Loggers>
     <Root level="debug">
       <AppenderRef ref="Console" />
       <AppenderRef ref="MyFile"/>
     </Root>
   </Loggers>
 </Configuration>

我很困惑,不太明白如何完成。

我正在使用 IDE eclipse 通過 tomcat 8.5 進行 web 開發。

我的文件

<form  method="POST">
    <input  type="submit" name="Clickme" value ="buttonclick" >
        <%
            String button1Click = request.getParameter("buttonclick");
            if(button1Click != null && button1Click.equals("buttonclick")){
        %>
            <p> click </p>
        <%  
            }
        %>
</form>

創建一個虛擬類,你需要它來實例化記錄器:

public class JspLoggerClass {}

在您的 jsp 中導入記錄器和類:

<%@ page import="org.apache.log4j.Logger, JspLoggerClass;" %>

實例化和使用:

  <%
    Logger logger = Logger.getLogger(JspLoggerClass.class);
    ...
    logger.info("message ...");
  %>

已編輯

我不是很了解你。 使用 log4j,您只能從 java 代碼編寫。 在 jsp 中,您只能在 scriptlet 中使用記錄器。 如果你想記錄點擊事件,那就是 javascript,所以唯一的記錄器是console.log("...")但這會打印在瀏覽器控制台上。 當你點擊按鈕時,jsp scriptlet中沒有辦法獲取事件,這段代碼是在服務器上執行的。 您可以做的是提交表單,轉到服務器上的 servlet 並在那里記錄事件。

編輯 2

好的,我的錯,你使用的是 2.3,那就是log4j 2 所以在你的項目/類路徑中包含log4j-corelog4j-api jars。 導入org.apache.logging.log4j.LogManagerorg.apache.logging.log4j.Logger 無需創建虛擬類,您可以使用這樣的字符串名稱實例化記錄器:

Logger logger = LogManager.getLogger("my jsp");

現在只需使用記錄器:

logger.info("...");

對不起,我不能發表評論。

我認為您的log4j.xml 中有錯誤,請刪除PatternLayout之前的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM