温馨提示×

Ubuntu如何配置Tomcat日志

小樊
46
2026-07-21 21:42:50
栏目: 智能运维

在 Ubuntu 上配置 Tomcat 日志,主要涉及 logging.propertiesserver.xml 以及可选的 log4j / logback。下面按常见场景系统说明。


一、Tomcat 日志类型说明

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(可选)

三、配置 logging.properties(Tomcat 自身日志)

1️⃣ 打开配置文件

sudo nano /opt/tomcat/conf/logging.properties

2️⃣ 常见配置示例

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

3️⃣ 日志级别说明

级别 说明
SEVERE 严重错误
WARNING 警告
INFO 默认
FINE 调试
FINER 更详细
FINEST 最详细

✅ 生产环境建议:INFO
✅ 调试阶段:FINE


四、限制 catalina.out 日志大小(非常重要)

Ubuntu 上 catalina.out 默认不会自动切割,容易撑满磁盘。

方法 1:使用 logrotate(推荐 ✅)

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

五、配置访问日志(Access Log)

1️⃣ 编辑 server.xml

sudo nano /opt/tomcat/conf/server.xml

2️⃣ 启用 AccessLogValve

<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


六、应用日志(log4j / logback)

1️⃣ 使用 logback(推荐)

依赖示例(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

八、重启 Tomcat

sudo systemctl restart tomcat
# 或
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh

九、常见问题

❓ catalina.out 不生成?

  • 检查 systemd 是否重定向了 stdout
  • catalina.sh 是否正常启动

❓ 日志中文乱码?

java.util.logging.ConsoleHandler.encoding = UTF-8

如果你愿意,可以告诉我:

  • ✅ Tomcat 版本(8 / 9 / 10)
  • ✅ 是否使用 systemd
  • ✅ 想解决的具体问题(磁盘满 / 没日志 / 调试)

我可以给你 完全针对你环境的配置方案

0