在 Ubuntu 上设置 Tomcat 日志,主要涉及 日志级别、日志路径、日志格式 等配置。下面按常见场景给你一个完整说明(以 Tomcat 9/10 为例)。
Tomcat 主要有以下几类日志:
| 日志类型 | 说明 |
|---|---|
| catalina.out | 标准输出日志(最常用) |
| catalina.YYYY-MM-DD.log | 启动/关闭日志 |
| localhost.*.log | 应用级异常 |
| manager.*.log | Manager 应用 |
| host-manager.*.log | Host Manager |
| access log | 访问日志(类似 Nginx access.log) |
在 Ubuntu 上,Tomcat 常见路径:
/etc/tomcat9/
/usr/share/tomcat9/
/var/log/tomcat9/
关键配置文件:
/etc/tomcat9/logging.properties
sudo vim /etc/tomcat9/logging.properties
日志级别(由低到高):
ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF
示例:只记录 INFO 及以上
org.apache.catalina.level = INFO
org.apache.catalina.handlers = 1catalina.org.apache.juli.AsyncFileHandler
关闭 DEBUG(生产环境推荐):
java.util.logging.ConsoleHandler.level = INFO
1catalina.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat9
1catalina.org.apache.juli.AsyncFileHandler.limit = 10485760
1catalina.org.apache.juli.AsyncFileHandler.count = 10
表示:
⚠️ Tomcat 默认不会自动切割 catalina.out
创建 logrotate 配置:
sudo vim /etc/logrotate.d/tomcat9
内容示例:
/var/log/tomcat9/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
重启 logrotate:
sudo logrotate -f /etc/logrotate.d/tomcat9
修改 systemd 启动参数,但可能影响排错。
sudo vim /etc/tomcat9/server.xml
在 <Host> 内添加:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
pattern="%h %l %u %t "%r" %s %b %D"
%D:请求耗时(毫秒)如果你部署的是 Java Web 项目:
log4j2.xml:
<RollingFile name="FileAppender"
fileName="/var/log/tomcat9/app.log"
filePattern="/var/log/tomcat9/app-%d{yyyy-MM-dd}.log">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
sudo systemctl restart tomcat9
查看日志:
tail -f /var/log/tomcat9/catalina.out
INFO如果你愿意,可以告诉我:
我可以帮你给出 一份可直接使用的完整配置。