Filter | 日志处理 | 应用例子

来源:互联网 发布:淘宝直通车打击同行 编辑:程序博客网 时间:2024/05/19 12:13

日志Filter

package cn.qiu;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintWriter;import java.util.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebInitParam;import javax.servlet.http.HttpServletRequest;/** * Filter 拦截器 * 应用【日志Filter】 * @author QiuRiMangCao * */@WebFilter(filterName="LoggingFilter", urlPatterns={ "/*" }, initParams={        @WebInitParam(name="logFileName", value="log.txt"),         @WebInitParam(name="prefix", value="Uri: ")        })public class LoggingFilter implements Filter{    private String prefix;    private PrintWriter logger;    @Override    public void destroy() {        System.out.println("destroy........");        if(logger != null ){            logger.close();        }    }    @Override    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)            throws IOException, ServletException {        System.out.println("doFilter.....");        HttpServletRequest httpServletRequest = (HttpServletRequest) arg0;        logger.println(new Date() + "  " + prefix + httpServletRequest.getRequestURI());        logger.flush();        arg2.doFilter(arg0, arg1);    }    @Override    public void init(FilterConfig arg0) throws ServletException {        System.out.println("init.....");        prefix = arg0.getInitParameter("prefix");        String logFileName = arg0.getInitParameter("logFileName");        String appPath = arg0.getServletContext().getRealPath("/");        System.out.println("appPath【"+appPath+"】LoginName【"+logFileName+"】");        try {            logger = new PrintWriter(new File(appPath, logFileName));        } catch (FileNotFoundException e) {            e.printStackTrace();            throw new ServletException(e.getMessage());        }    }}