修改 tomcat 配置文件,解决应用数据统计,增加head 信息,使用pandas 读取

原创 2018年04月16日 15:23:30

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/79960712

1,关于tomcat日志


首先,做app 开发都是使用rest 接口的,但是没有cookie 登录信息啥的。
一般登录之后在 head 放个 token 信息。用来验证用户登录。
把这个token 反应到 access log 上面就可以进行数据统计了。

2,修改tomcat 日志格式


tomcat 日志格式:
https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/AccessLogValve.html
还有中文日志格式:
http://www.cnblogs.com/chrischennx/p/6746214.html
写的很详细了。

直接修改成这个配置:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %{X-Forwarded-For}i &quot;%{yyyy-MM-dd HH:mm:ss}t&quot; &quot;%r&quot; %{token}i %s %b" />
               <!-- default pattern="%h %l %u %t &quot;%r&quot; %s %b" />-->
      </Host>

直接把 head 头信息中的token 打印出来了,同时讲时间进行格式化。
变成 yyyy-MM-dd HH:mm:ss 方便处理了。可以直接处理了。

同时把 nginx 透传的 真实ip 也显示。
把日期增加 两个双引号 "%{yyyy-MM-dd HH:mm:ss}t" 方便pandas 读取。

测试:

curl http://localhost:8080/aabb -H "token: 222" 

然后就可以看到 token 已经增加到了 tomcat access 的log里面了。

3,读取日志


测试日志如下:

127.0.0.1 127.0.0.1 "2018-04-16 15:01:46" "GET /api/v1/user HTTP/1.1" 123344 200 110
127.0.0.1 127.0.0.1 "2018-04-16 15:01:47" "GET /api/v1/user/aa HTTP/1.1" 123344 200 110
127.0.0.1 127.0.0.1 "2018-04-16 15:01:48" "GET /api/v1/user/bb HTTP/1.1" 123355 200 110
127.0.0.1 127.0.0.1 "2018-04-16 15:01:40" "GET /api/v1/user/cc HTTP/1.1" 123366 200 110
127.0.0.1 127.0.0.1 "2018-04-16 15:02:46" "GET /api/v1/user HTTP/1.1" 123344 200 110
import pandas as pd
aa = pd.read_csv("/data/tomcat.log",sep=' ',names=['ip','realIp','time','url','token','status','bytes'])
>>> aa
          ip     realIp                 time                           url  \
0  127.0.0.1  127.0.0.1  2018-04-16 15:01:46     GET /api/v1/user HTTP/1.1   
1  127.0.0.1  127.0.0.1  2018-04-16 15:01:47  GET /api/v1/user/aa HTTP/1.1   
2  127.0.0.1  127.0.0.1  2018-04-16 15:01:48  GET /api/v1/user/bb HTTP/1.1   
3  127.0.0.1  127.0.0.1  2018-04-16 15:01:40  GET /api/v1/user/cc HTTP/1.1   
4  127.0.0.1  127.0.0.1  2018-04-16 15:02:46     GET /api/v1/user HTTP/1.1   

    token  status  bytes  
0  123344     200    110  
1  123344     200    110  
2  123355     200    110  
3  123366     200    110  
4  123344     200    110

然后就可以操作pandas 数据对象了。

参考:
http://pandas.pydata.org/pandas-docs/stable/io.html
http://blog.mmast.net/read-apache-access-log-pandas

4,总结


修改下了tomcat 日志,然后将日志文件作为 一个 csv 文件,
使用pandas 直接读取,然后就转换了。非常方便。
也不用找啥工具去处理日志了。非常方便。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/79960712

版权声明:本文为博主原创文章,未经博主允许不得转载。博主地址:http://blog.csdn.net/freewebsys https://blog.csdn.net/freewebsys/article/details/79960712

Nginx 反向代理 Tomcat 传递自定义 Head 问题总结

Nginx 反向代理 Tomcat 传递自定义 Head 信息遇到几个问题总结一下! 1. Nginx 若只配置 proxy_pass 则不会将原始请求 Head 向 Tomcat 转发,必须配置 p...
  • johnnycode
  • johnnycode
  • 2015-09-07 10:42:27
  • 5493

Tomcat 中响应头信息(Http Response Header) Content-Length 和 Transfer-Encoding 之种种

转帖注明出处谢谢~先说说原理:客户端(PC浏览器或者手机浏览器)在接受到Tomcat的响应的时候,头信息通常都会带上Content-Length ,一般情况下客户端会在接受完Content-Lengt...
  • shootyou
  • shootyou
  • 2011-01-13 17:15:00
  • 19120

Tomcat优化详细教程

Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器。而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化。         ...
  • Kally_Wang
  • Kally_Wang
  • 2017-07-11 17:22:38
  • 3886

Tomcat7优化

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • funchs
  • funchs
  • 2016-03-25 12:35:00
  • 3467

tomcat启动后修改项目配置文件

作用:启动后修改spring文件配置,动态加载不同的配置文件 步骤: 1.修改catalina.sh文件,添加如下代码在文件头部: JAVA_OPTS="-server -XX:PermSiz...
  • gongzi2311
  • gongzi2311
  • 2016-08-08 20:33:05
  • 2186

tomcat部署、实现war包读取外部动态配置文件

项目配置可视化可维护,web项目的配置文件需要动态变更,不能直接写死在war中,就需要我们实现war包可以读取外部的配置文件。...
  • Mars93
  • Mars93
  • 2017-09-18 11:19:26
  • 1897

优化tomcat配置(从内存、并发、缓存4个方面)

Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. 幸好Tomcat还有很多的提升空间....
  • xingxiupaioxue
  • xingxiupaioxue
  • 2017-04-12 23:58:57
  • 1132

修改request中header的值

在java web开发中,我们有时候会遇到需要修改request中请求值的问题,虽然这个不是特别常见。初看这是一个简单的问题,因为我们能通过HttpServletRequest对象拿到我们需要的所有关...
  • carrie__yang
  • carrie__yang
  • 2017-06-21 12:49:21
  • 2293

修改tomcat server.xml配置文件,解决乱码问题

编程的时候,我们时常会碰到乱码的问题,这里提供一个修改tomcat服务器配置文件的解决方法,这里找到tomcat目录下的server.xml 配置文件,然后再下面的相对位置添加一个编码格式配置项,或者...
  • qiaoliguo111
  • qiaoliguo111
  • 2013-02-25 16:25:16
  • 1810

Pandas数据读取与显示

import pandas as pdfood_info = pd.read_csv("D:\\test\\food_info.csv") #此处需要转义 print (type(food_info...
  • qiujiahao123
  • qiujiahao123
  • 2017-03-12 19:29:36
  • 487
收藏助手
不良信息举报
您举报文章:修改 tomcat 配置文件,解决应用数据统计,增加head 信息,使用pandas 读取
举报原因:
原因补充:

(最多只允许输入30个字)