[英]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.jar
和log4j-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-core和log4j-api jars。 導入org.apache.logging.log4j.LogManager和org.apache.logging.log4j.Logger 。 無需創建虛擬類,您可以使用這樣的字符串名稱實例化記錄器:
Logger logger = LogManager.getLogger("my jsp");
現在只需使用記錄器:
logger.info("...");
對不起,我不能發表評論。
我認為您的log4j.xml 中有錯誤,請刪除PatternLayout之前的點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.