如何在 JSP 中使用 SLF4J 记录器

2022-09-03 07:26:19

我正在将中型应用程序的日志记录从自定义解决方案迁移到更标准的解决方案。我决定使用Logback和SLF4J,并且我已经成功迁移了大部分Java代码。但是,我有相当多的JSP只是使用System.out进行日志记录。我从未使用过JSP,并开始思考:我应该如何在JSP中使用正确的日志记录?

<%@page import="org.slf4j.Logger"%>
<%@page import="org.slf4j.LoggerFactory"%>
<%
    Logger log = LoggerFactory.getLogger(getClass());
%>
<!-- ... -->
<%
    log.info("Hello Logging!");
%>

这是首先想到的,但在以下几点上似乎是错误的:

  • 太冗长了,需要大量的工作来转换现有的JSP
  • 每次呈现页面时都会调用 LoggerFactory.getLogger(),而不是标准 Java 类中的静态字段)logger
  • 我认为伐木器的名字也会以这种方式变得不那么简单。

是否有某种标准,或最佳实践,或者任何用于在JPSP中记录的内容?

另外,IIRC,Log4J有某种标签。SLF4J(或者Logback)是否有类似的东西?


答案 1

看看 slf4j-taglib


答案 2

您可以尝试(请注意“!”)

<%! org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger("JSPname"); %>

然后,将 System.out 替换为

<% log.info("Hello Logging!"); %>

鲍里斯的评论确实应该被理解为一致的,JSP不应该在一般情况下需要日志记录。我只会使用这种技术(或任何类似技术)来替换需要保留的现有日志记录。