java web笔记之Filter日志记录
2015-03-21 22:42
169 查看
1.日志记录简介
记录日志也是Filter擅长的工作之一。在request之前与之后都可以记录日志。该日志记录Filter使用apache的日志工具记录日志,记录客户的IP地址,访问的URL以及系哦啊好的时间。apache的commons-logging的好处是可以自由配置,弹性大,日志Filter的代码如下:package com.wang.indentity; import java.io.IOException; 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.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * Servlet Filter implementation class myFilter */ public class logFilter implements Filter { private Log log = LogFactory.getLog(getClass());//log对象 private String filterName; public logFilter() { System.out.println("11111111111111"); // TODO Auto-generated constructor stub } public void destroy() { log.info("关闭Filter:"+filterName); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; String referer = req.getHeader("referer"); long startTime = System.currentTimeMillis(); String requestUrl = req.getRequestURI(); requestUrl = req.getQueryString() == null ?requestUrl:(requestUrl+"?"+req.getQueryString());//所有的地址栏参数 chain.doFilter(req, res); long endTime = System.currentTimeMillis(); log.info(request.getRemoteAddr()+"访问了"+requestUrl+",=总用时"+(endTime-startTime)+"毫秒。"); this.destroy(); } public void init(FilterConfig fConfig) throws ServletException { filterName = fConfig.getFilterName();//获取Filter名称 log.info("启动Filter:"+filterName); } }注意:日志Filter的好处是可拆卸。如果不再需要记录日志,只需要将Filter配置注释掉即可。
相关文章推荐
- Filter (3)【日志记录与异常捕捉】
- 没头没尾--项目开发笔记:异常处理与日志记录代码自动生成(工具能生成多少代码!?续一)
- PHP 错误与异常 笔记与总结(5)配置文件中与错误日志相关的选项 && 将错误记录到指定的文件中
- Java web中使用Log4j记录日志信息
- Java Web学习笔记——Filter
- 记事本记录操作日志笔记
- [原创]java WEB学习笔记45:自定义HttpFilter类,理解多个Filter 代码的执行顺序,Filterdemo:禁用浏览器缓存的Filter,字符编码的Filter,检查用户是否登陆过的Filter
- Python学习笔记(一) -- Python封装日志记录
- java web笔记之Filter防盗链
- java web中Filter防盗链学习笔记
- openerp学习笔记 跟踪状态,记录日志,发送消息
- Java学习笔记(十九)——Java 日志记录 AND log4j
- java Web应用配置log4j日志记录
- centos 6.5 + haproxy 1.4搭配之 haproxy不记录日志一则轻笔记
- servlet 的filter,日志文件记录执行时间
- Nginx日志记录Cookie 学习笔记
- <struts学习>2014.2.8学习笔记(仅以此日志来记录自己的技术路)
- (工具类)Linux笔记之终端日志记录工具script
- WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)
- [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo