spring boot Tomcat访问日志
1.Tomcat设置访问日志
1 <Host name="localhost" appBase="webapps" 2 unpackWARs="true" autoDeploy="true"> 3 <!-- 4 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 5 prefix="localhost_access_log." suffix=".txt" 6 pattern="%h %l %u %t "%r" %s %b" /> 7 --> 8 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 9 prefix="localhost_access_log." suffix=".txt" 10 pattern="%h,%l,%u,%t,%T,"%r",%s,%b,%{Referer}i,"%{User-Agent}i",%{X-Requested-With}i" 11 fileDateFormat="yyyy-MM-dd.HH" 12 /> 13 14 </Host>
2.springboot设置访问日志,在properties配置文件中添加tomcat日志配置
1 #内嵌tomcat日志 2 server.tomcat.accesslog.buffered=true 3 server.tomcat.accesslog.directory=/usr/microStorage/tomcatLog 4 server.tomcat.accesslog.enabled=true 5 #每天保存一个 6 server.tomcat.accesslog.file-date-format=yyyy-MM-dd 7 server.tomcat.accesslog.pattern=%h %l %T %t %r %s %b %{Referer}i %{User-Agent}i 8 server.tomcat.accesslog.prefix=access_log 9 server.tomcat.accesslog.rename-on-rotate=false 10 server.tomcat.accesslog.request-attributes-enabled=false 11 server.tomcat.accesslog.rotate=true 12 server.tomcat.accesslog.suffix=.log
3.日志分析,通过正在表达式,将需要分析的信息进行正则捕获提取,然后根据需要进行相关数据的统计及可视化展示
1 public static void parse() throws Exception{ 2 String path = "D:/logs/localhost_access_log.2018-09-30.11.txt"; 3 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path))); 4 String line = null; 5 String reg = "^(.+?),(.+?),(.+?),(.+?),(.+?),(\\\".+?\\\"),(.+?),(.+?),(.+?),(\\\".+?\\\"),(.+?),(.+?)$"; 6 Pattern pattern = Pattern.compile(reg); 7 while((line=br.readLine())!=null) { 8 System.out.println(line); 9 Matcher matcher = pattern.matcher(line); 10 matcher.matches(); 11 // pattern="%h,%l,%u,%t,%T,"%r",%s,%b,%{Referer}i,"%{User-Agent}i",%{X-Requested-With}i,%{passport}c" 12 System.out.println("ip="+matcher.group(1)); 13 System.out.println("date="+matcher.group(4)); 14 System.out.println("cost="+matcher.group(5)); 15 System.out.println("request="+matcher.group(6)); 16 System.out.println("status="+matcher.group(7)); 17 System.out.println("bytes="+matcher.group(8)); 18 System.out.println("Referer="+matcher.group(9)); 19 System.out.println("User-Agent="+matcher.group(10)); 20 System.out.println("X-Requested-With="+matcher.group(11)); 21 System.out.println("passport="+matcher.group(12)); 22 System.out.println("------------------------------------"); 23 } 24 br.close(); 25 }
hello world!!!
分类:
spring boot
标签:
spring boot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix