如何在JSP中使用SLF4J Logger

Lór*_*tér 14 java logging jsp slf4j

我正在将中型应用程序的日志记录从自定义解决方案迁移到更标准的解决方案.我决定使用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!");
%>
Run Code Online (Sandbox Code Playgroud)

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

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

是否有某种标准,或最佳实践,或用于登录JSP的任何东西?

另外,IIRC,Log4J还有一些taglib.SLF4J(或者Logback)有类似的东西吗?

Cek*_*eki 9

看看slf4j-taglib.

  • 据我所知,slf4j-taglib尚未成为maven中心.对于任何可能是挂断的人而言,这只是一个假设. (2认同)

Mic*_*urd 5

你可以尝试(注意"!")

<%! org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger("JSPname"); %>
Run Code Online (Sandbox Code Playgroud)

然后用.替换你的System.out

<% log.info("Hello Logging!"); %>
Run Code Online (Sandbox Code Playgroud)

尽管如此,鲍威斯的评论应该被认为是一致的,JSP应该不需要一般的日志记录.我只会使用这种技术(或任何类似的技术)来替换需要保留的现有日志记录.