LogFilter.java Source code

Java tutorial

Introduction

Here is the source code for LogFilter.java

Source

//Log4j from Apache is required

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;
    }
}