常使用web服务器的朋友大都了解,一般的web server有两部分日志:

一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息

二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。

现在我来和大家介绍一下利用tomcat产生的访问日志数据,我们能做哪些有效的分析数据?

首先是配置tomcat访问日志数据,默认情况下访问日志没有打开,配置的方式如下:

编辑 ${catalina}/conf/server.xml文件.注:${catalina}是tomcat的安装目录

把以下的注释()去掉即可。

其中 directory是产生的目录 tomcat安装${catalina}作为当前目录

pattern表示日志生产的格式,common是tomcat提供的一个标准设置格式。其具体的表达式为 %h %l %u %t "%r" %s %b

但本人建议采用以下具体的配置,因为标准配置有一些重要的日志数据无法生。

%h %l %u %t "%r" %s %b %T

具体的日志产生样式说明如下(从官方文档中摘录):

* %a -Remote IP address* %A -Local IP address* %b - Bytes sent, excluding HTTP headers, or '-' ifzero* %B -Bytes sent, excluding HTTP headers* %h - Remote host name (or IP address if resolveHosts is false)* %H -Request protocol* %l - Remote logical username from identd (always returns '-')* %m -Request method (GET, POST, etc.)* %p - Local port on which thisrequest was received* %q - Query string (prepended with a '?' ifit exists)* %r -First line of the request (method and request URI)* %s -HTTP status code of the response* %S -User session ID* %t -Date and time, in Common Log Format* %u - Remote user that was authenticated (if any), else '-'

* %U -Requested URL path* %v -Local server name* %D -Time taken to process the request, in millis* %T - Time taken to process the request, in seconds

There is also support to write information from the cookie, incoming header, the Session or something else in the ServletRequest. It is modeled after the apache syntax:

* %{xxx}i forincoming headers* %{xxx}c fora specific cookie* %{xxx}r xxx is an attribute in the ServletRequest* %{xxx}s xxx is an attribute in the HttpSession

现在我们回头再来看一下下面这个配置 %h %l %u %t "%r" %s %b %T 生产的访问日志数据,我们可以做哪些事?

先看一下,我们能得到的数据有:

* %h 访问的用户IP地址* %l 访问逻辑用户名,通常返回'-'

* %u 访问验证用户名,通常返回'-'

* %t 访问日时* %r 访问的方式(post或者是get),访问的资源和使用的http协议版本* %s 访问返回的http状态* %b 访问资源返回的流量* %T 访问所使用的时间

有了这些数据,我们可以根据时间段做以下的分析处理(图片使用jfreechart工具动态生成):

*独立IP数统计*访问请求数统计*访问资料文件数统计*访问流量统计*访问处理响应时间统计*统计所有404错误页面*统计所有500错误的页面*统计访问最频繁页面*统计访问处理时间最久页面* 统计并发访问频率最高的页面

分析工具包括两大部分,一个是后台解释程序,每天执行一次对后台日志数据进行解析后保存到数据库中。

第二个是显示程序,从数据库中查询数据并生成相应的图表信息。

java tomcat 日志分析工具_设计一个Tomcat访问日志分析工具相关推荐

  1. 合并工具_分享一个SM to HISM合并工具

    UE4提供了非常高效的优化工具,比如多物体合并,MergeActor合并SM为ISM,但是ISM和HISM有一个比较关键的区别就是对剔除的支持,ISM的剔除针对整个SM编组,HISM可针对编组内的单个 ...

  2. python和报表生成工具_推荐一个利用 python 生成 pptx 分析报告的工具包:reportgen...

    reportgen v0.1.8 更新介绍 这段时间,我对 reportgen 进行了大工程量的修改和更新.将之前在各个文章中出现的函数进行了封装,同时也对现有工具包的一些逻辑进行了调整. 1.rep ...

  3. java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为"XYZ",则抛出一个异常信息"This is a XYZ",如果从命令 ...

  4. java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...

    问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...

  5. java 百亿计算器_设计一个一百亿的计算器

    .补码(负数在计算机中的存储) .百亿计算器 负数在计算机中以补码的形式存储. 负数的补码表示方法是:将负数表示成二进制原码(负数最高位是1,正数最高位是0)然后将原码取反(1变0,0变1),即反码, ...

  6. tomact错误日志是那个_如何查看tomcat启动异常日志详情

    我的电脑同时使用两个jdk版本,默认1.7,eclipse使用的是1.8,,由于项目启动时有加载类需要jdk1.8的包,1.7不支持.所以导致项目在eclipse直接能够跑,而在外面的tomcat跑是 ...

  7. java etl工具_一文带你入门ETL工具-datax的简单使用

    什么是ETL? ETL负责将分布的.异构数据源中的数据如关系数据.平面数据文件等抽取到临时中间层后进行清洗.转换.集成,最后加载到数据仓库或数据集市中,成为联机分析处理.数据挖掘的基础. ETL是数据 ...

  8. Java开发面试技巧,如何设计一个优雅的RESTFUL的接口

    HTTP 里面有几个基本的方法.我们利用这些约定一些规范. 方法 作用 GET 获取数据 POST 插入数据 PUT 更新数据 DELECT 删除数据 从表中,如果我们可以清楚看到当我们的接口是关于获 ...

  9. JAVA面试题:你怎么设计一个消息队列?

    1 面试题 写一个消息队列,你如何进行架构设计,说一下你的思路! 2 考点分析 一般面试官要考察两块: (1)你有没有对某一个消息队列做过较为深入的原理的了解,或者从整体了解把握住一个mq的架构原理 ...

最新文章

  1. 是否存在两台 MacOS 之间无缝切换的办法?
  2. 黑帽与白帽始终有着“差别”
  3. 武汉众邦银行的数字化升级秘诀:让每个业务⼈员都能自助式分析查询
  4. 超级签名源码_苹果iOS超级签名源码技术解析
  5. JDK8和JDK1.8有何区别
  6. vue引用自定义.js文件 (常量抛出 + 地址三级联动为例)- 语法篇
  7. kali ip查询_UDP/IP硬件协议栈设计(一):缘起
  8. 快手联合创始人银鑫卸任A站法定代表人、董事、经理
  9. WPF窗体的生命周期
  10. python数据分析:Numpy
  11. WinForm大型企业ERP系统
  12. 环路滤波(二):HEVC去方块滤波
  13. 电话号码的字母组合---2022/01/23
  14. r5处理器_入门级游戏党核显平台!R5-3400G核显游戏组装配置清单
  15. element-ui的el-menu横向菜单栏中去掉下划线
  16. wlacm 骑马修栅栏 (图的遍历)题解
  17. oracle11g RAC部署(超详细包会)
  18. Oracle RBO、CBO简介
  19. 购物车加商品时候结算步骤
  20. 人脸识别门禁的智能化演进之路

热门文章

  1. hdu3949(线性基,求第k小的异或和
  2. JDK8新特性(十一)之收集Stream流中的结果
  3. MySQL中的索引使用
  4. MySQL计算表字段长度LENGTH
  5. JS获取元素的第一个子节点
  6. java 内存泄露 书籍_[Java教程]一次艰难的内存泄露排查,BeanUtils 的锅
  7. java button随机颜色_Javascript点击按钮随机改变数字与其颜色
  8. 用FoxitPDFReader打开消除PDF中文乱码
  9. iplat-ui源码解读
  10. 西工大学计算机专业考研容易吗,2022年西北工业大学计算机专业考研成功经验...