Tomcat 的日志主要由 logging.properties 控制,也常与 log4j / logback / log4j2 等框架配合使用。下面按“常见场景 + 配置方式”给你一个完整说明。
Tomcat 默认使用 java.util.logging(JULI),配置文件为:
$TOMCAT_HOME/conf/logging.properties
$TOMCAT_HOME/logs
catalina.out:标准输出(默认不切割)localhost.*.loghost-manager.*.logmanager.*.log编辑 conf/logging.properties:
.level = INFO
org.apache.catalina.level = INFO
org.apache.catalina.startup.level = WARN
级别说明(由低到高):
FINEST < FINER < FINE < CONFIG < INFO < WARNING < SEVERE
Tomcat JULI 支持 按大小切割:
1catalina.org.apache.juli.AsyncFileHandler.level = INFO
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
# 单个文件大小(默认 1MB)
1catalina.org.apache.juli.AsyncFileHandler.limit = 10485760
# 保留文件数
1catalina.org.apache.juli.AsyncFileHandler.count = 10
✅ 效果:
Tomcat 默认情况下 catalina.out 不会滚动。
✅ 建议做法(Linux):
# 使用 logrotate
vim /etc/logrotate.d/tomcat
/opt/tomcat/logs/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
Tomcat 官方已支持 Log4j2:
$TOMCAT_HOME/lib
放入:
log4j-api-2.x.jarlog4j-core-2.x.jarlog4j-jul-2.x.jar复制:
$TOMCAT_HOME/bin/tomcat-juli.jar
替换为 Log4j2 提供的版本(官方说明一致)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<RollingFile name="CATALINA"
fileName="${sys:catalina.base}/logs/catalina.log"
filePattern="${sys:catalina.base}/logs/catalina-%d{yyyy-MM-dd}.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="30"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="CATALINA"/>
</Root>
</Loggers>
</Configuration>
✅ 效果:
| 类型 | 配置位置 |
|---|---|
| Tomcat 自身 | conf/logging.properties |
| 应用日志 | 应用内 log4j2.xml / logback.xml |
✅ 最佳实践:
logrotate 或禁用 catalina.out.level = SEVERE
%d{yyyy-MM-dd HH:mm:ss Z}| 场景 | 建议 |
|---|---|
| 测试环境 | Tomcat 默认 |
| 生产环境 | Log4j2 / Logback |
| 防止磁盘满 | 按天切割 + 压缩 |
| 容器环境 | 输出到 stdout + 日志采集 |
如果你愿意,可以告诉我:
我可以帮你直接生成完整配置文件。