[英]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.