在 Ubuntu 上配置 Tomcat 日志,主要涉及 logging.properties(JULI 日志)、log4j / logback(应用日志) 以及 systemd / catalina.out 的管理。下面按常见场景给你一个完整说明。
Tomcat 使用 java.util.logging(JULI),配置文件在:
/opt/tomcat/conf/logging.properties
(路径可能不同,如 /usr/share/tomcat9/conf/logging.properties)
| 日志 | 说明 |
|---|---|
| catalina.out | 标准输出(stdout/stderr) |
| catalina.YYYY-MM-DD.log | Tomcat 运行日志 |
| localhost.YYYY-MM-DD.log | 应用日志 |
| manager / host-manager | 管理日志 |
编辑:
sudo vim /opt/tomcat/conf/logging.properties
示例:
.level = INFO
org.apache.catalina.level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = WARNING
可选级别:
SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST
1catalina.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat9
确保目录存在并有权限:
sudo mkdir -p /var/log/tomcat9
sudo chown -R tomcat:tomcat /var/log/tomcat9
Tomcat 通过 systemd 启动时:
sudo systemctl status tomcat9
默认 catalina.out 不会生成,日志进入 journald:
journalctl -u tomcat9 -f
编辑 systemd 服务:
sudo systemctl edit tomcat9
写入:
[Service]
StandardOutput=append:/var/log/tomcat9/catalina.out
StandardError=append:/var/log/tomcat9/catalina.out
重载并重启:
sudo systemctl daemon-reload
sudo systemctl restart tomcat9
创建配置:
sudo vim /etc/logrotate.d/tomcat9
示例:
/var/log/tomcat9/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
测试:
sudo logrotate -d /etc/logrotate.d/tomcat9
依赖:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.23.1</version>
</dependency>
log4j2.xml:
<Configuration status="INFO">
<Appenders>
<RollingFile name="File" fileName="/var/log/tomcat9/app.log"
filePattern="/var/log/tomcat9/app-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d %p %c - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
ls -ld /var/log/tomcat9
权限错误常见:
sudo chown -R tomcat:tomcat /var/log/tomcat9
du -sh /var/log/tomcat9/*
✅ 一定要配置 logrotate
✅ Tomcat 日志配置核心
conf/logging.properties → Tomcat 自身日志systemd → catalina.outlogrotate → 日志轮转log4j/logback → 应用日志如果你愿意,可以告诉我:
我可以给你 完全贴合你环境的配置示例。