虚拟主机配置访问日志

给 Tomcat 虚拟主机配置独立访问日志非常简单,只需要在 <Host> 标签里加一个 <Valve> 就行,每个虚拟主机可以分开记日志,互不干扰。

一、最简配置(直接复制可用)

xml
<Host name="www.yourdomain.com" appBase="webapps" unpackWARs="true" autoDeploy="true">

    <!-- 虚拟主机独立访问日志 -->
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"
           prefix="yourdomain_access"
           suffix=".log"
           pattern="common"
           fileDateFormat="yyyy-MM-dd" />

</Host>

二、参数说明

  • directory="logs":日志存放在 Tomcat/logs 下
  • prefix="yourdomain_access":日志文件名前缀
  • suffix=".log":后缀名
  • pattern="common":日志格式(标准通用格式)
  • fileDateFormat="yyyy-MM-dd":按天切割日志

三、常用日志格式 pattern

1. 标准通用格式(简单)

plaintext
pattern="common"
记录:IP、用户、时间、请求、状态码、流量

2. 详细格式(生产常用)

plaintext
pattern="%h %l %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;"
包含:来源 IP、请求方式、URL、状态、流量、来源页面、浏览器 UA

四、多虚拟主机独立日志示例

xml
<Host name="www.site1.com" appBase="site1">
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"
           prefix="site1_access"
           suffix=".log"
           pattern="common" />
</Host>

<Host name="www.site2.com" appBase="site2">
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"
           prefix="site2_access"
           suffix=".log"
           pattern="common" />
</Host>
效果:
  • logs/site1_access.2025-12-31.log
  • logs/site2_access.2025-12-31.log

五、生效方式

  1. 改完 server.xml
  2. 重启 Tomcat
  3. 访问网站,日志就会自动生成
上一篇 打破认知!Linux 进程地址空间不是 “真实内存”?底层揭秘
下一篇 WLAN射频负载均衡技术白皮书