无法在jsp页面中使用日志记录

时间:2012-12-24 09:02:20

标签: java jsp logging log4j

我使用以下库进行日志记录:

  • slf4j-api 1.6.4
  • slf4j-log4j12 1.6.4
  • commons-logging 1.1.1

和我的 log4j.properties 文件:

log.dir=logs
rrd.dir=${log.dir}/rrd
datestamp=yyyy-MM-dd/HH:mm:ss.SSS
roll.pattern.hourly=.yyyy-MM-dd.HH
roll.pattern.daily=.yyyy-MM-dd


log4j.rootLogger=ON

log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.myConsoleAppender.layout.ConversionPattern=%d{${datestamp}} [%t] %-5p %m%n



log4j.appender.myFileAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myFileAppender.DatePattern=${roll.pattern.hourly}
log4j.appender.myFileAppender.File=${log.dir}/MyAPP.log
log4j.appender.myFileAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.myFileAppender.layout.ConversionPattern=%d{${datestamp}} [%t] %-5p %m%n


log4j.logger.com.myapp=DEBUG, myConsoleAppender, myFileAppender

jsp页面中,我执行以下操作:

<%@page import="org.apache.commons.logging.*"%>

<%

        Log log = LogFactory.getLog(getClass());

        log.debug("login page");

注意:日志记录在java类中正常工作。

请告知为什么它不起作用,谢谢。

5 个答案:

答案 0 :(得分:4)

我刚刚将以下行添加到 log4j.properties ,现在工作正常:

log4j.logger.org.apache.jsp=DEBUG, myConsoleAppender, myFileAppender

答案 1 :(得分:1)

要在jsp文件中使用logger,请按以下方式初始化logger对象:

<% Logger logger = LoggerFactory.getLogger(this.getClass()); %>

答案 2 :(得分:0)

与任何其他自定义标记库一样,您必须为Web应用程序正确配置它。这意味着将log.tld文件放入WEB-INF目录并将Log标记JAR文件安装到WEB-INF / lib目录中。您还需要将相应的taglib元素添加到Web应用程序的部署描述符中,类似于添加Struts标记库的方式:

<强> Web.xml中

<taglib>
<taglib-uri>/WEB-INF/log.tld</taglib-uri>
 <taglib-location>/WEB-INF/log.tld</taglib-location>
</taglib>
JSP中

<%@ taglib uri="/WEB-INF/log.tld" prefix="logger" %>

<logger:debug message="This is a debug message from a jsp using the Log tag" />

<html> 
   <head> 
       <title>Using the Log Tag in a JSP page</title> 
   </head> 
   <body> 
       <logger:info message="This is another message using the log4j tag" />

         There should be two log messages in the log4j log file. 
   </body> 
</html>

对于更大,更复杂的JSP页面,这种方法更加清晰

答案 3 :(得分:0)

1-在您的configurationFile:log4j.xml中  <logger name="processus.jsp"> <level value="info" /> <appender-ref ref="fileAppender" /> </logger>

页面JSP中的

2-:   `&lt;%@ page import =“org.apache.log4j.Logger”%&gt;

&lt;%Logger logger = Logger.getLogger(“yourPage.jsp”); %GT;`

答案 4 :(得分:-1)

最好在java中创建一个初始化日志记录的logger类。

有关java类的信息,请参阅this link。从JSP调用它的logDebug()方法来记录LogClassName.logDebug("message here");

之类的消息