在 Debian 上开启 Tomcat 访问日志(Access Log),通常通过 AccessLogValve 来实现。下面按常见场景一步步说明。
Tomcat 的访问日志不是默认一定开启的,而是由 server.xml 中的 Valve 控制。
核心组件:
org.apache.catalina.valves.AccessLogValve
Debian 下 Tomcat 常见路径:
/etc/tomcat9/server.xml
/etc/tomcat8/server.xml
编辑文件:
sudo nano /etc/tomcat9/server.xml
<Host> 中添加 AccessLogValve找到类似下面的内容:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
在 <Host> ... </Host> 内部添加:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
✅ 示例完整结构:
<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="combined" />
</Host>
sudo systemctl restart tomcat9
日志默认位置:
/var/lib/tomcat9/logs/
示例:
localhost_access_log.2026-01-21.txt
查看:
tail -f /var/lib/tomcat9/logs/localhost_access_log.*
| pattern | 含义 |
|---|---|
common |
基础访问日志 |
combined |
Apache 风格(含 Referer / User-Agent) |
%h |
客户端 IP |
%u |
用户 |
%t |
时间 |
%r |
请求 |
%s |
HTTP 状态码 |
%b |
响应大小 |
✅ 推荐使用:
pattern="combined"
<Host> 内sudo chown -R tomcat9:tomcat9 /var/lib/tomcat9/logs
在应用的 META-INF/context.xml 中添加:
<Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="myapp_access_log"
suffix=".txt"
pattern="combined"/>
</Context>
✅ 开启 Debian Tomcat 访问日志只需三步:
server.xmlAccessLogValve如果你愿意,可以告诉我:
我可以帮你定制最合适的配置。