tomcat的access日志记录笔记文章

最近打算还是了解点java吧,搞点小demo。

想了解的知识点:

  1. 数据请求的堆栈,因为遇到过数据库锁表需要定位。(今天做点记录,但有点不完美)
  2. 想得到数据库连接没释放的那个线程堆栈。没找到,但是有个老系统确实有这个功能是个插件
  3. 找个access访问记录的排序工具类。 这个主要借助awk命令,注释有个demo命令 作用吧优化系统,第二个看到一些非法恶意请求
  4. post(看情况了)参数日志在一个客户那里记录了一下 当时是因为客户浏览器闪退F12请求信息没法看到(有点复杂,可能前端debug一步一步可以看到)请求到哪里了(系统有些dwr的东西

配置信息

java 复制代码
server:
  port: 8089
  address: 0.0.0.0

  tomcat:
    uri-encoding: UTF-8
    #最小线程数
    min-spare-threads: 10
    #最大线程数
    max-threads: 20
    #最大等待队列长度
    accept-count: 10
    #最大链接数 这个参数是指在同一时间,tomcat能够接受的最大连接数。一般这个值要大于maxThreads+acceptCount
    #并发请求数 <= tomcat最大线程数200,可以看到200个请求,响应结果正常
    #并发数(201) >tomcat最大线程数200.可以看到,因为tomcat最大的线程数为200,201的并发请求量,超出了并发处理的数量200,多出来的1个请求,需要等待某个处理中的请求处理完成
    #请求数超过最大连接数300,可以看到有大量的没有正常响应的http请求,原因很简单,因为超过了tomcat设置的最大连接数,服务器拒绝了该次请求的连接
    max-connections: 40
    #请求头最大长度kb
    #max-http-header-size: 1048576
    #请请求体最大长度kb
    #max-http-post-size: 2097152
    accesslog:
      enabled: true
      directory: D:/toolsInstall/logs
      rotate: true
#      %a - 远程IP地址
#      %A - 本地IP地址
#      %b - 发送的字节数,不包括HTTP头,或" - "如果没有发送字节
#      %B - 发送的字节数,不包括HTTP头
#      %h - 远程主机名
#      %H - 请求协议
#      %l (小写的L)- 远程逻辑从identd的用户名(总是返回' - ')
#      %m - 请求方法
#      %p - 本地端口
#      %q - 查询字符串(在前面加上一个"?"如果它存在,否则是一个空字符串
#      %r - 第一行的要求
#      %s - 响应的HTTP状态代码
#      %S - 用户会话ID
#      %t - 日期和时间,在通用日志格式
#      %u - 远程用户身份验证
#      %U - 请求的URL路径
#      %v - 本地服务器名
#      %D - 处理请求的时间(以毫秒为单位)
#      %T - 处理请求的时间(以秒为单位)
#      %I (大写的i) - 当前请求的线程名称
#      %{XXX}i xxx代表传入的头(HTTP Request)
#      %{XXX}o xxx代表传出​​的响应头(Http Resonse)
#      %{XXX}c  xxx代表特定的Cookie名
#      %{XXX}r  xxx代表ServletRequest属性名
#      %{xxx}s xxx是HttpSession的一个属性 需要写个filter得到所有参数 然后配置 就可以把post的参数记录到日志 request.setAttribute("postdata", output);就可以了 不用session

#      %{User-Agent}i %{Cookie}i
#      awk 命令按照倒数第二列由大到小显示接口以及访问时间NF-1
#      cat logs/localhost_access_log.2016-10-25.txt | awk '{print $(NF-1)" "$0}' | sort -n -r| awk '{$1="";print $0}'
      pattern: '%t %a %{X-Forwarded-For}i %{HOST}i %{User-Agent}i %{Cookie}i %A %m %U%q %s %D %I %B'
相关推荐
北岛贰1 分钟前
迷茫焦虑期,我做了一个带支付带官网的 AI 聊天虚拟恋人 App
前端·人工智能·后端
小荷才露尖尖角,早有蜻蜓立上头40 分钟前
过滤器的4种创建方式
java
大圣编蚕1 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
程序员阿明1 小时前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea
linweidong2 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手2 小时前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
ForteScarlet2 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖2 小时前
Java深入解析篇六十二之安全机制详解
java·开发语言
小刘在重生~3 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
Orange_sparkle3 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互