FileDocCategorySizeDatePackage
LogFilter.javaAPI DocExample1587Tue Jun 10 11:42:44 BST 2003com.jspservletcookbook

LogFilter.java

package com.jspservletcookbook;

import javax.servlet.*;
import javax.servlet.http.*;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class LogFilter implements Filter {
    
    private FilterConfig config;
    private Logger log;
    
    /** Creates new RequestFilter */
    public LogFilter() {}
    
    public void  init(FilterConfig filterConfig)  throws ServletException{
    
        this.config = filterConfig;
        //load the configuration for this application's loggers using the servletLog.properties file
  PropertyConfigurator.configure(config.getServletContext().getRealPath("/") +
      "WEB-INF/classes/servletLog.properties");
        log = Logger.getLogger(LogFilter.class);
        log.info("Logger instantiated in "+ getClass().getName());
    }
    
    public void  doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException {
 
    HttpServletRequest req = null;
    String id = config.getInitParameter("log-id");
    
    if (id == null)
        id = "unknown";
     
    if (log != null && (request instanceof HttpServletRequest)){
        
        req = (HttpServletRequest) request;
        log.info(
            "Log id:" + id + ": Request received from: " + req.getRemoteHost() + " for " +
                req.getRequestURL()); }

        chain.doFilter(request,response);
    }// doFilter
    
    public void destroy(){
        /*called before the Filter instance is removed 
        from service by the web container*/
        log = null;
    }
}