用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时把访问的文件、时间、用户写道日志中。
xml 代码<!---->
觉得用xml代码来复制,还是有点问题,干脆直接写到评论里了,具体xml代码大家可以参考我下面的评论配置.
生成的文件内容
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
分享到:
相关推荐
用户可以根据需求调整日志的分类、过滤条件,甚至可以设置自定义的样式模板,比如添加公司LOGO、设定页眉页脚等,以满足不同组织和个人的个性化需求。此外,工具还可能支持批量命名和保存生成的Word文档,方便后期...
在Java编程领域,过滤器(Filters)是一种常用的设计模式,用于处理数据流或请求响应链中的特定任务。根据所提供的标题、描述...理解和掌握这些过滤器的原理和用法,对于开发高效、安全和用户友好的应用程序至关重要。
秋式IIS日志分析器是一款专门针对IIS日志文件进行深度分析的工具,它能够帮助用户快速理解和处理大量的日志数据,提取出有价值的信息。以下是对这款工具的详细讲解: 1. **功能特性** - **日志导入**:支持批量...
QT并不直接提供内置的日志框架,但我们可以利用QT的I/O设备(如QFile、QTextStream)和流操作符来构建一个自定义的日志系统。描述中的"源码实现了QT平台下的日志记录功能"可能是指通过编写代码来创建一个类或模块,...
- **日志过滤**:根据需要筛选和显示特定类型的事件,简化日志查看。 - **日志聚合**:将来自不同源的日志整合到一个统一的日志流中。 - **实时监控**:实时更新日志,及时响应系统变化。 - **日志归档**:自动...
过滤器能够拦截请求和响应,对数据进行预处理或后处理,从而实现诸如权限控制、字符编码转换、日志记录等多种功能。 过滤器的工作原理是基于Servlet规范中的Filter接口。当用户向服务器发送请求时,Filter会在...
这有助于识别潜在的性能瓶颈、安全威胁,以及优化网站性能和用户体验。 总之,网站日志查看器是IT管理员不可或缺的工具之一,它能够简化服务器日志的管理和分析,从而提高系统的稳定性和安全性。无论是处理IIS、...
5. **日志过滤**:根据特定条件过滤日志,如只显示错误或警告级别的日志。 6. **日志轮换**:当日志文件达到一定大小或时间间隔后自动创建新文件,保持日志管理的有序性。 日志分析器则是用来处理和解析这些日志...
- **日志记录**:记录用户的访问日志,用于监控和调试。 - **性能优化**:例如,对静态资源进行缓存或压缩处理,提高响应速度。 #### 六、过滤器链 - **概念**:当多个过滤器被配置时,它们会按顺序组成一个过滤器...
它不直接生成请求或响应,而是作为一个中间件存在,能够在请求到达目标Servlet或JSP页面前对`ServletRequest`对象进行检查和修改,同样,在响应返回给客户端之前,过滤器也有机会修改`ServletResponse`对象。...
8. **日志查看器**:为了便于分析,可能会开发一个单独的日志查看工具,它可以解析和过滤日志文件,提供搜索和分析功能。 9. **异常处理**:在记录日志时,应处理可能的异常情况,如磁盘满或网络连接问题,确保即使...
3. **登录验证**:在用户访问受保护资源之前,过滤器可以检查用户是否已登录,未登录则重定向到登录页面。 4. **缓存控制**:设置响应头,控制浏览器缓存策略,防止敏感信息被缓存。 5. **日志记录**:记录请求...
通过合理地利用 Grails 过滤器,开发者可以有效地编写出整洁、可维护的代码,同时提高应用的安全性和性能。 总结来说,Grails 过滤器是 Grails 框架中一种强大的工具,它们提供了一种优雅的方式来处理应用程序的...
自定义过滤器允许开发者根据需求添加特定的处理逻辑,如权限验证、日志记录或内容修改。创建自定义过滤器需实现`Filter`接口,并在`web.xml`配置文件中声明。在本实例中,可能包含一个用于处理特定请求或者对用户...
每个过滤器负责特定的任务,如读取输入、解析数据、处理数据或生成输出。通过连接这些过滤器,我们可以构建复杂的数据处理流程。 在Java中,我们可以利用标准输入输出流(System.in和System.out)以及IO库来实现这...
Unity日志查看器是一款专为开发者设计的工具,旨在帮助他们在Android或iOS设备上便捷地查看Unity引擎生成的日志信息。Unity作为一个强大的跨平台游戏开发框架,其在运行时会生成大量的日志数据,这对于调试、性能...
9. **可扩展性**:组件可能设计为可扩展,允许添加自定义的日志处理器或过滤器,以满足特定需求。 在实际应用中,"C++日志生成com组件"可能被广泛应用于各种C++项目中,特别是在服务器端软件、后台服务以及需要高度...
"过滤器计数"是指利用过滤器技术来实现对页面访问次数的统计。在这个场景中,我们关注的是`ACountFilter`,这是一个自定义的过滤器,专门用于记录用户对页面的点击次数。 首先,我们需要了解JAVAEE中的过滤器是如何...
在实际操作中,用户需要先下载并安装"鸿鹄论坛_h3c日志解释器",然后导入H3C设备生成的日志文件。工具会自动解析日志,并可能以图表、列表或其他直观方式展示结果。通过这样的解析,用户可以迅速发现问题,进行相应...
过滤器和验证码是Java Web开发中的重要组成部分,主要用于提高应用程序的安全性和用户体验。下面将详细讲解这两个概念。 2.1.1 过滤器简介 过滤器(Filter)是Java Servlet API的一部分,它允许开发者在HTTP请求...