重点先说清楚(关键!)
Tomcat 虚拟主机的访问日志(AccessLog)没有 “日志级别” 这个概念!
我给你用最简单的话讲明白:
- 访问日志 AccessLog:只记录谁访问了、访问了什么、状态码,固定输出,没有级别之分。
- 日志级别(info/warn/error):只属于 Tomcat 运行日志(catalina.out、localhost.log)。
你要控制的不是级别,而是访问日志要记录哪些内容,用
pattern 配置。一、如果你想控制【访问日志记录多少内容】
直接修改
pattern,就是控制日志 “详细程度”。1. 最简单(极简日志)
xml
pattern="common"
只记录:IP、时间、请求、状态、大小
2. 标准详细(生产推荐)
xml
pattern="%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\""
3. 超详细(调试用)
xml
pattern="%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %F"
二、如果你想控制【Tomcat 运行日志的级别】
比如 catalina.out 想只看 error,不看 info,那才叫日志级别。
修改文件:
conf/logging.propertiesproperties
# 全局级别
.level = INFO
# 控制台日志级别
java.util.logging.ConsoleHandler.level = FINE
常用级别:
SEVERE只看严重错误WARNING看警告 + 错误INFO看普通信息(默认)FINE看调试信息
三、虚拟主机访问日志完整模板(直接复制)
xml
<Host name="www.test.com" appBase="testweb" autoDeploy="true">
<!-- 访问日志(没有级别,只有格式) -->
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="test_com_access"
suffix=".log"
fileDateFormat="yyyy-MM-dd"
pattern="common" <!-- 格式 = 详细程度 -->
/>
</Host>
一句话总结
- 访问日志 = 没有级别,只有格式 pattern
- 运行日志 = 有级别,在 logging.properties 配置