利用日志和过滤器生成用户访问日志
来源:互联网 发布:网络布线工程 税率 编辑:程序博客网 时间:2024/04/29 17:45
用log4j来生成日志。然后将日志类加入到过滤器中。使得当用户访问时jsp或者servlet时可以生成日志。便于调试。
下面是用log4j来的得到用户访问的地址并写道文件中。
package xzt.rs.tools;
import xzt.rs.tools.Cundate;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*; // For Date class
import org.apache.log4j.*;
/** Simple filter that prints a report in the log file
* whenever the associated servlets or JSP pages
* are accessed.
*/
public class LogFilter implements Filter {
protected FilterConfig config;
private ServletContext context;
private String filterName;
private Cundate cd=new Cundate();
//
static Logger logger = Logger.getLogger(LogFilter.class.getName());
//
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws ServletException, IOException {
HttpServletRequest req = (HttpServletRequest)request;
chain.doFilter(request,response);
//
PropertyConfigurator.configure("Log4j.properties");
LogFilter.logger.info(req.getRemoteHost() +
"试图访问" +
req.getRequestURL() +
"在" + cd.getTime4() + ". " +
"(被报告:" + filterName + ".)");
//
}
public void init(FilterConfig config)
throws ServletException {
this.config = config; // In case it is needed by subclass.
context = config.getServletContext();
filterName = config.getFilterName();
}
public void destroy() {}
}
//
得到当前日期的简单类。
package xzt.rs.tools.*;
public class Cundate{
public String getTime4(){
Date d = new Date(); //Get current date to d.
SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); //Set date format
String strDate = fm.format(d); //Get date to string strDate via format fm.
return strDate;
}
}
在web.xml中配置过滤器,使得用户访问jsp或者servlet时把访问的文件、时间、用户写道日志中。
<filter>
<filter-name>Logger</filter-name>
<filter-class>
xzt.rs.tools.LogFilter
</filter-class>
</filter>
<!-- ... -->
<!-- Apply the Logger filter to all servlets and
JSP pages.
-->
<filter-mapping>
<filter-name>Logger</filter-name>
<url-pattern>/*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Logger</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
<!-- ... -->
生成的文件内容
INFO [tcpConnection-8080-3] (LogFilter.java:31) - newtransit试图访问http://192.168.0.3:8080/oasystem/main.jsp在2005-01-21-16-40-31. (被报告:Logger.)
Log4j.properties的配置文件
log4j.rootLogger=debug, A1
#打印到文件
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=F:/resin/resin-2.0.4/bak/sdcdcBak.log
log4j.appender.A1.MaxFileSize=1024KB
log4j.appender.A1.MaxBackupIndex=100
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
#打印到控制台
#log4j.appender.B1=org.apache.log4j.ConsoleAppender
#log4j.appender.B1.layout=org.apache.log4j.PatternLayout
#log4j.appender.B1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#log4j.appender.B1.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
- 利用日志和过滤器生成用户访问日志
- 利用日志和过滤器生成用户访问日志
- Java Servlet Filter实现Web路径和用户日志过滤器
- 错误日志和访问日志
- hbase记录用户访问日志
- 利用过滤器判断用户访问权限
- 在MFC中利用 sqlite3数据库和bat 生成日志
- nginx访问日志和错误日志
- apache访问日志和错误日志按照日期进行归类分割生成方法
- 利用rsyslog 配置用户行为日志审计
- Apache按天截断日志工具,无法生成访问日志
- Apche日志:访问日志
- 用户日志生成策略,哪个方案好?
- 用户日志生成策略之我见
- springboot 使用过滤器获取response内容保存接口访问日志
- 利用Hibernate 3 Interceptor生成审计日志
- 【Spring MVC拦截器+logback日志+自定义注解】实现用户鉴权登陆和访问日志记录
- 利用过滤器禁止未登录的用户访问网站
- IE自动产生的提示框
- IT人不认35岁这个坎 可向培训咨询方向发展
- 用挿座的簡単高速网(译者:cronuz)
- 2005年1月工作日志
- jsp项目中实现关闭浏览器后吊线,只要不关闭不操作也保持在线
- 利用日志和过滤器生成用户访问日志
- oracle随机取表中数据
- 一个深沉的HR笑话
- SQL 语法参考手册(SQL)
- 把.NET程序部署到没有安装.NET Framwork的机器上
- 在SQL Server的存储过程中调用Com组件
- A*算法实现
- j2me HelloWorld
- IDENTITY列的一个有用操作