如何设置Tomcat日志记录策略

Tomcat 的日志主要由 logging.properties 控制,也常与 log4j / logback / log4j2 等框架配合使用。下面按“常见场景 + 配置方式”给你一个完整说明。


一、Tomcat 自带 JULI 日志(默认方式)

Tomcat 默认使用 java.util.logging(JULI),配置文件为:

$TOMCAT_HOME/conf/logging.properties

1️⃣ 默认日志策略

  • 日志目录:
    $TOMCAT_HOME/logs
    
  • 默认文件:
    • catalina.out:标准输出(默认不切割)
    • localhost.*.log
    • host-manager.*.log
    • manager.*.log

2️⃣ 修改日志级别

编辑 conf/logging.properties

.level = INFO

org.apache.catalina.level = INFO
org.apache.catalina.startup.level = WARN

级别说明(由低到高):

FINEST < FINER < FINE < CONFIG < INFO < WARNING < SEVERE

3️⃣ 设置日志文件大小和滚动策略(常用)

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

✅ 效果:

  • 每个 catalina 日志最大 10MB
  • 最多保留 10 个历史文件

4️⃣ 禁止 catalina.out 无限增长(重要)

Tomcat 默认情况下 catalina.out 不会滚动

✅ 建议做法(Linux):

# 使用 logrotate
vim /etc/logrotate.d/tomcat
/opt/tomcat/logs/catalina.out {
    daily
    rotate 7
    missingok
    notifempty
    compress
    copytruncate
}

二、使用 Log4j / Logback / Log4j2(推荐生产环境)

✅ 为什么推荐

  • 支持 按天、按大小、压缩
  • 支持异步日志
  • 比 JULI 更灵活

三、Tomcat + Log4j2 示例(最常用)

1️⃣ 引入依赖(Tomcat 9+)

Tomcat 官方已支持 Log4j2:

$TOMCAT_HOME/lib

放入:

  • log4j-api-2.x.jar
  • log4j-core-2.x.jar
  • log4j-jul-2.x.jar

2️⃣ 替换 JULI

复制:

$TOMCAT_HOME/bin/tomcat-juli.jar

替换为 Log4j2 提供的版本(官方说明一致)


3️⃣ log4j2.xml 示例(按天滚动)

<?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>

✅ 效果:

  • 每天一个日志
  • 自动压缩
  • 保留 30 天

四、应用日志 vs Tomcat 日志(建议分开)

类型 配置位置
Tomcat 自身 conf/logging.properties
应用日志 应用内 log4j2.xml / logback.xml

✅ 最佳实践:

  • Tomcat:只记录启动、容器级错误
  • 应用:记录业务日志

五、常见问题

❓ catalina.out 越来越大?

  • 默认不切割
  • ✅ 用 logrotate 或禁用 catalina.out

❓ 想只记录 ERROR?

.level = SEVERE

❓ 日志时间不对?

  • 检查系统时区
  • Log4j2 可指定 %d{yyyy-MM-dd HH:mm:ss Z}

六、推荐配置(总结)

场景 建议
测试环境 Tomcat 默认
生产环境 Log4j2 / Logback
防止磁盘满 按天切割 + 压缩
容器环境 输出到 stdout + 日志采集

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

  • Tomcat 版本
  • Linux / Windows
  • 是否使用 Docker
  • 是否需要只记录 ERROR

我可以帮你直接生成完整配置文件

相关推荐:

Debian如何查看cpuinfo

在Debian(以及大多数Linux发行版)中,查看CPU信息最常用、最直接的方法是读取/proc/cpuinfo文件,也可以使用一些专用工具。下面是几种常见方式: 1.查看CPU详细信息(最常用) cat/proc/cpuinfo 输出内容包括: processor:逻辑CPU编号 modelna...

Debian下cpuinfo在哪看

在Debian(以及大多数Linux发行版)中,查看CPU信息有以下几种常用方式: 1.直接查看/proc/cpuinfo(最常用) cat/proc/cpuinfo 这是最传统、最直接的方法,会显示每个逻辑CPU的详细信息,包括: vendor_id modelname cpuMHz caches...

如何重启Debian FTP服务器

在Debian上“重启FTP服务器”取决于你具体使用的是哪种FTP服务软件。最常见的是vsftpd,也有使用ProFTPD或Pure-FTPd的情况。下面分别说明。 一、确认你使用的是哪种FTP服务器 dpkg-l|grep-E'vsftpd|proftpd|pure-ftpd' 或查看正在监听21...

如何在Debian配置FTPServer

在Debian上配置FTPServer(FTPoverSSL/TLS),最常用、稳定的方案是vsftpd+SSL/TLS。下面给你一套从安装到安全配置的完整流程(适用于Debian10/11/12)。 一、安装vsftpd sudoaptupdate sudoaptinstallvsftpd-y 安...

Debian配置extract难吗

在Debian上配置extract(解压/提取)本身并不难,关键看你指的是哪一类“extract”: 一、如果只是「解压文件」(最常见) ✅一点都不难,系统自带工具 Debian默认已支持常见格式: 1️⃣常用解压命令 tar-xvffile.tar tar-xvffile.tar.gz tar-x...

怎么查看Debian FTP服务器

“DebianFTP服务器”这个说法可能有几种不同含义,下面按最常见的几种情况分别说明如何查看/确认。 一、查看本机是否运行了FTP服务器(如vsftpd、proftpd) 1.查看是否安装了FTP服务 dpkg-l|grep-E'vsftpd|proftpd|pure-ftpd' 2.查看FTP服...

Debian怎么安装FTPServer

在Debian上安装FTPServer(通常指vsftpd+SSL/TLS,即“安全的FTP”)可以按下面步骤来。下面以vsftpd为例,这是Debian上最常用、最稳定的FTP服务器。 一、安装vsftpd sudoaptupdate sudoaptinstallvsftpd-y 安装完成后,服务...

Debian extract配置方法是什么

你提到的“Debianextract配置方法”有点模糊,常见有几种可能。下面我按最常见的几种场景分别说明,你可以对照看看是哪一种。 一、如果你指的是从Debian软件包(.deb)中提取文件 1️⃣使用dpkg-deb(最常用) dpkg-deb-xpackage.deb目标目录 示例: mkdir...