Tomcat的日志文件默认存放在${catalina.base}/logs目录(${catalina.base}是Tomcat实例的根目录,通常与conf目录同级)。主要日志文件分为两类:
catalina.YYYY-MM-DD.log(Catalina引擎输出的请求处理日志)、localhost.YYYY-MM-DD.log(Tomcat内部代码异常日志,如JSP解析错误)、manager.YYYY-MM-DD.log(Tomcat Manager应用日志)、host-manager.YYYY-MM-DD.log(虚拟主机管理应用日志)。localhost_access_log.YYYY-MM-DD.txt(记录所有请求的访问信息,默认关闭)。catalina.out(程序中System.out/System.err的输出,不支持自动分割,需定期清理)。日志级别从低到高依次为:FINEST(最详细)>FINER>FINE>CONFIG>INFO>WARNING>SEVERE(最简略)>OFF(关闭)。
conf/logging.properties文件中的.level属性(如.level=INFO表示仅记录INFO及以上级别日志)。FINE:org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE2localhost.org.apache.juli.FileHandler)以输出对应级别的日志。访问日志默认关闭,需修改conf/server.xml文件,取消<Host>标签内的AccessLogValve配置注释,并调整参数:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log."
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"
resolveHosts="false"/>
directory:日志存放目录(相对于${catalina.base});prefix:日志文件前缀;suffix:日志文件后缀(如.txt);pattern:日志格式(常用common(基础信息)或combined(包含Referer/User-Agent),也可自定义,如%h %l %u %t "%r" %s %b %{User-Agent}i)。Tomcat日志级别从低到高及适用场景:
INFO,开发环境设置为FINE或DEBUG(需结合具体需求)。server.xml中的pattern属性调整,常用占位符:%h(远程IP)、%t(时间)、%r(请求行,如GET /index.html HTTP/1.1)、%s(状态码)、%b(发送字节数)、%{User-Agent}i(客户端浏览器信息)。pattern="%h %t "%r" %s"logging.properties中的formatter属性(如java.util.logging.SimpleFormatter),或通过java.util.logging.SimpleFormatter.format属性自定义(如%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n,输出格式为时间 级别 类名 日志内容)。logging.properties中的FileHandler参数设置:1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.limit = 1000000 # 单个文件最大1MB
1catalina.org.apache.juli.FileHandler.count = 5 # 保留5个备份文件
server.xml中的AccessLogValve参数设置:<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log."
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"
fileDateFormat="yyyy-MM-dd" # 按天分割
rotatable="true"/> # 启用轮转(默认true)
logrotate工具,在/etc/logrotate.d/tomcat中添加配置:/path/to/tomcat/logs/catalina.out {
daily
create 600 tomcat tomcat
rotate 30
missingok
ifempty
compress
copytruncate
}
该配置表示每天轮转catalina.out,保留30天压缩文件,轮转后清空原文件。修改logging.properties或server.xml后,必须重启Tomcat才能使配置生效。可通过以下命令重启:
# 停止Tomcat
$CATALINA_HOME/bin/shutdown.sh
# 启动Tomcat
$CATALINA_HOME/bin/startup.sh
若不想重启,可使用reload命令(仅适用于部分配置,如logging.properties),但重启是最稳妥的方式。