有类似的问题here和here,但它们没有提供我要寻找的答案。我正在尝试使用sessionListener
,但是它没有任何作用,因为我看不到任何日志。这是我的HttpSessionListener
实现:
package com.example;
import org.apache.log4j.Logger;
@WebListener
public class ApplicationHttpSessionListener implements HttpSessionListener {
protected static final Logger logger = Logger.getLogger((String)ApplicationHttpSessionListener.class.getName());
public ApplicationHttpSessionListener() {
}
@Override
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
sessions.put(session.getId(), session);
logger.info("SESSION CREATED: " + session.getId());
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
logger.debug("Session destroyed with session id: " + event.getSession().getId());
}
}
并且我在web.xml
中将此类注册为侦听器:
<listener>
<listener-class>com.example.ApplicationHttpSessionListener</listener-class>
</listener>
但是当我运行应用程序或登录,注销时,我根本看不到日志条目。我还尝试使用不同的登录凭据从不同的浏览器访问该应用程序,但仍未获取任何日志。日志记录配置工作正常,因为我能够从不同组件登录到同一应用程序中的同一文件。那么这部分有什么问题呢?为什么创建会话时没有日志?