servlet 的filter,日志文件记录执行时间
2014-12-07 21:59
363 查看
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.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 执行时间过滤器
*/
public class ProcessTimeFilter implements Filter {
protected final Logger log = LoggerFactory
.getLogger(ProcessTimeFilter.class);
/**
* 请求执行开始时间
*/
public static final String START_TIME = "startTime";
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
long time = System.currentTimeMillis();
request.setAttribute(START_TIME, time);
chain.doFilter(request, response);
time = System.currentTimeMillis() - time;
log.debug("process in {} ms: {}", time, request.getRequestURI());
}
public void init(FilterConfig arg0) throws ServletException {
}
}
web.xml配置
<filter>
<filter-name>processTime</filter-name>
<filter-class>ProcessTimeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>processTime</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
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.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 执行时间过滤器
*/
public class ProcessTimeFilter implements Filter {
protected final Logger log = LoggerFactory
.getLogger(ProcessTimeFilter.class);
/**
* 请求执行开始时间
*/
public static final String START_TIME = "startTime";
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
long time = System.currentTimeMillis();
request.setAttribute(START_TIME, time);
chain.doFilter(request, response);
time = System.currentTimeMillis() - time;
log.debug("process in {} ms: {}", time, request.getRequestURI());
}
public void init(FilterConfig arg0) throws ServletException {
}
}
web.xml配置
<filter>
<filter-name>processTime</filter-name>
<filter-class>ProcessTimeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>processTime</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
相关文章推荐
- 在执行 COMMIT 和 ROLLBACK 操作时, 等待 "日志文件同步" 事件消耗了大量数据库时间。
- 在执行批处理时将执行错误的语句记录下来并写到日志文件中去
- 启用mysql日志记录执行过的sql并且开启慢查询记录所有超过慢查询时间的SQL以及未使用索引SQL
- linux日志文件过大,想要截取执行时间的日志信息 如何截取
- Nginx访问日志、Nginx日志切割 、静态文件不记录日志和过期时间
- JavaScript创建日志文件并记录时间的做法
- log4net示例1-最简单的回滚文件记录日志程序(时间)
- 访问日志不记录静态文件;访问日志切割;静态图片等元素过期时间
- log4jdbc之sql执行时间日志记录原理解析
- Nginx访问日志,Nginx日志切割,静态文件不记录日志和过期时间
- 通过脚本实现从日志文件中提取时间最近的几条记录
- location 设定某个文件的过期时间,并不记录访问日志
- EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)
- apache访问日志不记录静态文件、访问日志切割、静态元素过期时间
- Linux下实现跟踪程序执行信息记录日志文件
- 解决crontab计划任务命令写对查看日志也有执行记录但命令执行后却没相应创建文件
- EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)
- web.xml文件中context-param、listener、filter、servlet的执行顺序
- 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间
- 12.10 Nginx访问日志;12.11 Nginx日志切割;12.12 静态文件不记录日志和过期时间