在 Ubuntu 上配置 Tomcat 日志,主要涉及 logging.properties、server.xml 以及可选的 log4j / logback。下面按常见场景系统说明。
Tomcat 常见日志有 4 类:
| 类型 | 说明 |
|---|---|
| catalina.out | 标准输出/错误日志(最常用) |
| catalina.{date}.log | Tomcat 自身运行日志 |
| localhost.{date}.log | 应用级日志 |
| access log | 访问日志(类似 Nginx access.log) |
cd /opt/tomcat/conf # 或 /usr/share/tomcat9/conf
主要文件:
logging.properties ✅(核心)server.xml ✅(访问日志)context.xml(可选)sudo nano /opt/tomcat/conf/logging.properties
handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
| 级别 | 说明 |
|---|---|
| SEVERE | 严重错误 |
| WARNING | 警告 |
| INFO | 默认 |
| FINE | 调试 |
| FINER | 更详细 |
| FINEST | 最详细 |
✅ 生产环境建议:INFO
✅ 调试阶段:FINE
Ubuntu 上 catalina.out 默认不会自动切割,容易撑满磁盘。
sudo nano /etc/logrotate.d/tomcat
示例配置:
/opt/tomcat/logs/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
测试:
sudo logrotate -d /etc/logrotate.d/tomcat
sudo nano /opt/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
✅ 日志路径:logs/localhost_access_log.2026-01-21.txt
依赖示例(Maven):
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.14</version>
</dependency>
logback.xml 示例:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/opt/tomcat/logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/opt/tomcat/logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</configuration>
sudo chown -R tomcat:tomcat /opt/tomcat/logs
sudo chmod 750 /opt/tomcat/logs
sudo systemctl restart tomcat
# 或
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh
systemd 是否重定向了 stdoutcatalina.sh 是否正常启动java.util.logging.ConsoleHandler.encoding = UTF-8
如果你愿意,可以告诉我:
我可以给你 完全针对你环境的配置方案。