`
alex8946
  • 浏览: 366436 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

利用日志和过滤器生成用户访问日志

阅读更多

用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

分享到:
评论
1 楼 alex8946 2007-02-26  
<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>
  <!-- ... -->

相关推荐

    批量生成word日志文档工具

    用户可以根据需求调整日志的分类、过滤条件,甚至可以设置自定义的样式模板,比如添加公司LOGO、设定页眉页脚等,以满足不同组织和个人的个性化需求。此外,工具还可能支持批量命名和保存生成的Word文档,方便后期...

    java一些 常用 的过滤 器

    在Java编程领域,过滤器(Filters)是一种常用的设计模式,用于处理数据流或请求响应链中的特定任务。根据所提供的标题、描述...理解和掌握这些过滤器的原理和用法,对于开发高效、安全和用户友好的应用程序至关重要。

    秋式IIS日志分析器,IIS日志分析器

    秋式IIS日志分析器是一款专门针对IIS日志文件进行深度分析的工具,它能够帮助用户快速理解和处理大量的日志数据,提取出有价值的信息。以下是对这款工具的详细讲解: 1. **功能特性** - **日志导入**:支持批量...

    QT 保存日志数据,根据条件自动创建日志文件

    QT并不直接提供内置的日志框架,但我们可以利用QT的I/O设备(如QFile、QTextStream)和流操作符来构建一个自定义的日志系统。描述中的"源码实现了QT平台下的日志记录功能"可能是指通过编写代码来创建一个类或模块,...

    事件日子生成器

    - **日志过滤**:根据需要筛选和显示特定类型的事件,简化日志查看。 - **日志聚合**:将来自不同源的日志整合到一个统一的日志流中。 - **实时监控**:实时更新日志,及时响应系统变化。 - **日志归档**:自动...

    accp java过滤器 PPT

    过滤器能够拦截请求和响应,对数据进行预处理或后处理,从而实现诸如权限控制、字符编码转换、日志记录等多种功能。 过滤器的工作原理是基于Servlet规范中的Filter接口。当用户向服务器发送请求时,Filter会在...

    网站日志查看器,很好用的服务器日志查看工具

    这有助于识别潜在的性能瓶颈、安全威胁,以及优化网站性能和用户体验。 总之,网站日志查看器是IT管理员不可或缺的工具之一,它能够简化服务器日志的管理和分析,从而提高系统的稳定性和安全性。无论是处理IIS、...

    c#log日志类和日志分析器(源码)

    5. **日志过滤**:根据特定条件过滤日志,如只显示错误或警告级别的日志。 6. **日志轮换**:当日志文件达到一定大小或时间间隔后自动创建新文件,保持日志管理的有序性。 日志分析器则是用来处理和解析这些日志...

    过滤器笔记整理

    - **日志记录**:记录用户的访问日志,用于监控和调试。 - **性能优化**:例如,对静态资源进行缓存或压缩处理,提高响应速度。 #### 六、过滤器链 - **概念**:当多个过滤器被配置时,它们会按顺序组成一个过滤器...

    servlet过滤器详解

    它不直接生成请求或响应,而是作为一个中间件存在,能够在请求到达目标Servlet或JSP页面前对`ServletRequest`对象进行检查和修改,同样,在响应返回给客户端之前,过滤器也有机会修改`ServletResponse`对象。...

    BREW 生成日志代码

    8. **日志查看器**:为了便于分析,可能会开发一个单独的日志查看工具,它可以解析和过滤日志文件,提供搜索和分析功能。 9. **异常处理**:在记录日志时,应处理可能的异常情况,如磁盘满或网络连接问题,确保即使...

    servlet验证码制作和过滤器

    3. **登录验证**:在用户访问受保护资源之前,过滤器可以检查用户是否已登录,未登录则重定向到登录页面。 4. **缓存控制**:设置响应头,控制浏览器缓存策略,防止敏感信息被缓存。 5. **日志记录**:记录请求...

    Grails 的过滤器(Grails Filters)

    通过合理地利用 Grails 过滤器,开发者可以有效地编写出整洁、可维护的代码,同时提高应用的安全性和性能。 总结来说,Grails 过滤器是 Grails 框架中一种强大的工具,它们提供了一种优雅的方式来处理应用程序的...

    struts2实例 自定义过滤器 文件上传下载 登录功能

    自定义过滤器允许开发者根据需求添加特定的处理逻辑,如权限验证、日志记录或内容修改。创建自定义过滤器需实现`Filter`接口,并在`web.xml`配置文件中声明。在本实例中,可能包含一个用于处理特定请求或者对用户...

    基于管道过滤器风格的单词排序程序

    每个过滤器负责特定的任务,如读取输入、解析数据、处理数据或生成输出。通过连接这些过滤器,我们可以构建复杂的数据处理流程。 在Java中,我们可以利用标准输入输出流(System.in和System.out)以及IO库来实现这...

    unity日志查看器

    Unity日志查看器是一款专为开发者设计的工具,旨在帮助他们在Android或iOS设备上便捷地查看Unity引擎生成的日志信息。Unity作为一个强大的跨平台游戏开发框架,其在运行时会生成大量的日志数据,这对于调试、性能...

    C++日志生成com组件

    9. **可扩展性**:组件可能设计为可扩展,允许添加自定义的日志处理器或过滤器,以满足特定需求。 在实际应用中,"C++日志生成com组件"可能被广泛应用于各种C++项目中,特别是在服务器端软件、后台服务以及需要高度...

    过滤器计数

    "过滤器计数"是指利用过滤器技术来实现对页面访问次数的统计。在这个场景中,我们关注的是`ACountFilter`,这是一个自定义的过滤器,专门用于记录用户对页面的点击次数。 首先,我们需要了解JAVAEE中的过滤器是如何...

    鸿鹄论坛_h3c日志解释器

    在实际操作中,用户需要先下载并安装"鸿鹄论坛_h3c日志解释器",然后导入H3C设备生成的日志文件。工具会自动解析日志,并可能以图表、列表或其他直观方式展示结果。通过这样的解析,用户可以迅速发现问题,进行相应...

    java过滤器和验证码

    过滤器和验证码是Java Web开发中的重要组成部分,主要用于提高应用程序的安全性和用户体验。下面将详细讲解这两个概念。 2.1.1 过滤器简介 过滤器(Filter)是Java Servlet API的一部分,它允许开发者在HTTP请求...

Global site tag (gtag.js) - Google Analytics