繁体   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