Tomcat 访问日志(通常是 localhost_access_log.*.txt)为空,常见原因和排查思路如下:
Tomcat 默认 不会自动开启 access log,需要在 conf/server.xml 中配置 Valve。
检查 server.xml 中是否有类似配置:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
AccessLogValve 可以配置在:
Engine 级别(全局)Host 级别Context 级别如果配置在 Host 上,但请求走了另一个 Host,就不会记录。
常见误区:
http://localhost:8080 但应用已宕机验证方式:
curl http://localhost:8080/
再看日志是否生成。
部分情况下 Tomcat 不会写 access log(尤其状态码异常或连接中断)
directory 指向的目录不存在检查:
ls -l logs/
ps -ef | grep tomcat
如果前面有 Nginx:
127.0.0.1解决:
某些 pattern 配置异常,可能只写空行。
建议使用标准 pattern:
pattern="%h %l %u %t "%r" %s %b"
server.xml 是否有 AccessLogValve如果你愿意,可以把 server.xml 相关配置 + Tomcat 版本 发出来,我可以直接帮你定位。