tomcat如何配置保存7天滚动日志

在 Tomcat 中,logging.properties 文件是用于配置 Java 日志框架(java.util.logging)的。若要实现 catalina.out 日志保存 7 天,且每天的日志文件名带有时间戳,可以按以下步骤进行配置:

1. 备份原配置

在修改 logging.properties 文件之前,先对其进行备份,以防止配置错误导致问题。该文件通常位于 $CATALINA_BASE/conf 目录下。

2. 修改 logging.properties 配置

下面是具体的配置示例,可实现日志按天滚动并保留 7 天的功能:

properties

复制代码
# 配置根日志记录器,指定日志级别和使用的处理器
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler

# 配置控制台日志处理器,可根据需要调整
.handlers = java.util.logging.ConsoleHandler

# 配置 catalina 日志处理器
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
# 文件名添加日期格式
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.suffix =.log
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 7
# 开启按天滚动
1catalina.org.apache.juli.AsyncFileHandler.rotatable = true
1catalina.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter

# 其他日志处理器配置保持不变,如 localhost、manager、host-manager
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.suffix =.log
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 7
2localhost.org.apache.juli.AsyncFileHandler.rotatable = true
2localhost.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.suffix =.log
3manager.org.apache.juli.AsyncFileHandler.maxDays = 7
3manager.org.apache.juli.AsyncFileHandler.rotatable = true
3manager.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.suffix =.log
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 7
4host-manager.org.apache.juli.AsyncFileHandler.rotatable = true
4host-manager.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter

# 配置日志记录器的日志级别
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

3. 配置说明

  • 1catalina.org.apache.juli.AsyncFileHandler :这是用于处理 catalina 日志的异步文件处理器。
    • level :指定日志级别为 FINE,可根据需求调整。
    • directory :指定日志文件的存储目录,这里使用 $CATALINA_BASE/logs
    • prefixsuffixprefix 为日志文件名前缀,suffix 为后缀,结合起来日志文件名会是 catalina.日期.log 的形式,日期由 Tomcat 自动添加。
    • maxDays:设置日志文件的保留天数为 7 天,超过 7 天的日志文件会被自动删除。
    • rotatable :设置为 true 表示开启按天滚动日志的功能。
    • formatter :指定日志的格式化器为 java.util.logging.SimpleFormatter

4. 重启 Tomcat

修改完 logging.properties 文件后,需要重启 Tomcat 使配置生效。重启后,Tomcat 会按照配置每天生成一个新的日志文件,文件名带有日期,并且会自动删除 7 天前的日志文件。

通过以上步骤,就可以实现 catalina.out 日志按天滚动并保留 7 天的功能。

相关推荐
我命由我123459 分钟前
Java 并发编程 - Delay(Delayed 概述、Delayed 实现、Delayed 使用、Delay 缓存实现、Delayed 延迟获取数据实现)
java·开发语言·后端·缓存·java-ee·intellij-idea·intellij idea
北城以北888810 分钟前
SSM--MyBatis框架之缓存
java·缓存·intellij-idea·mybatis
kyle~15 分钟前
算法数学---差分数组(Difference Array)
java·开发语言·算法
曹朋羽21 分钟前
Spring EL 表达式
java·spring·el表达式
沐浴露z1 小时前
详解JDK21新特性【虚拟线程】
java·开发语言·jvm
No0d1es1 小时前
电子学会青少年软件编程(C/C++)1级等级考试真题试卷(2025年9月)
java·c语言·c++·青少年编程·电子学会·真题·一级
我是天龙_绍1 小时前
java 比对两对象大小 重写 comparator
后端
IT_陈寒1 小时前
Python 3.12新特性实测:10个让你的代码提速30%的隐藏技巧 🚀
前端·人工智能·后端
BingoGo2 小时前
从零开始打造 Laravel 扩展包:开发、测试到发布完整指南
后端·php