1.Tomcat设置访问日志

 <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 %l %u %t &quot;%r&quot; %s %b" />
-->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h,%l,%u,%t,%T,&quot;%r&quot;,%s,%b,%{Referer}i,&quot;%{User-Agent}i&quot;,%{X-Requested-With}i"
fileDateFormat="yyyy-MM-dd.HH"
/> </Host>

2.springboot设置访问日志,在properties配置文件中添加tomcat日志配置

 #内嵌tomcat日志
server.tomcat.accesslog.buffered=true
server.tomcat.accesslog.directory=/usr/microStorage/tomcatLog
server.tomcat.accesslog.enabled=true
#每天保存一个
server.tomcat.accesslog.file-date-format=yyyy-MM-dd
server.tomcat.accesslog.pattern=%h %l %T %t %r %s %b %{Referer}i %{User-Agent}i
server.tomcat.accesslog.prefix=access_log
server.tomcat.accesslog.rename-on-rotate=false
server.tomcat.accesslog.request-attributes-enabled=false
server.tomcat.accesslog.rotate=true
server.tomcat.accesslog.suffix=.log

3.日志分析,通过正在表达式,将需要分析的信息进行正则捕获提取,然后根据需要进行相关数据的统计及可视化展示

 public static void parse() throws Exception{
String path = "D:/logs/localhost_access_log.2018-09-30.11.txt";
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String line = null;
String reg = "^(.+?),(.+?),(.+?),(.+?),(.+?),(\\\".+?\\\"),(.+?),(.+?),(.+?),(\\\".+?\\\"),(.+?),(.+?)$";
Pattern pattern = Pattern.compile(reg);
while((line=br.readLine())!=null) {
System.out.println(line);
Matcher matcher = pattern.matcher(line);
matcher.matches();
// pattern="%h,%l,%u,%t,%T,&quot;%r&quot;,%s,%b,%{Referer}i,&quot;%{User-Agent}i&quot;,%{X-Requested-With}i,%{passport}c"
System.out.println("ip="+matcher.group(1));
System.out.println("date="+matcher.group(4));
System.out.println("cost="+matcher.group(5));
System.out.println("request="+matcher.group(6));
System.out.println("status="+matcher.group(7));
System.out.println("bytes="+matcher.group(8));
System.out.println("Referer="+matcher.group(9));
System.out.println("User-Agent="+matcher.group(10));
System.out.println("X-Requested-With="+matcher.group(11));
System.out.println("passport="+matcher.group(12));
System.out.println("------------------------------------");
}
br.close();
}

最新文章

  1. C#多态“说来也说”——逻辑层BLL中的多态使用
  2. findViewById返回null
  3. JS数组类型检测
  4. 通过代理连接go01ge
  5. SQL Server 维护计划实现数据库备份(Step by Step)
  6. RouterOS软路由常用命令
  7. javaEE开发案例——购物车
  8. Codeforces Round #260 (Div. 2)AB
  9. 自学asp.net mvc(一)
  10. ubuntu在xampp下安装memcache扩展
  11. final static T
  12. 落叶枫桥LOGO
  13. HDU-4604 Deque DP
  14. Windows入门基础:2.vs2013中Icon显示
  15. ajax跨域请求问题及解决办法总结
  16. Scipy教程 - 优化和拟合库scipy.optimize
  17. CodeForces Round #552 Div.3
  18. 【linux】awk相关
  19. Java项目使用SQLite数据库后无法启动的问题
  20. robotframework RF使用中需要安装的工具和库

热门文章

  1. 使用 ffmpeg 转换视频格式
  2. Tensorflow timeline trace
  3. STM32L476应用开发之六:电池SOC检测(转)
  4. Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration di
  5. TCP编程:系统出现 TIME_WAIT 原因及解决办法
  6. Atlas读写分离[高可用]
  7. left join加上where条件的困惑
  8. 尝试解决cifar10问题
  9. QML常用控件
  10. topcoder srm 490 div1