Tomcat 服务器日志
这些日志文件均来自Tomcat服务器,分别记录不同维度的运行和操作信息,具体如下:
-
catalina.out
Tomcat的核心日志文件,记录Tomcat服务器自身的启动、停止、运行过程中的系统级信息,包括:- Tomcat启动时的初始化日志(如端口绑定、组件加载等);
- 服务器运行中的错误信息(如配置错误、组件异常等);
- 部署在Tomcat上的应用程序输出的标准日志(如应用的
System.out
/System.err
打印内容、未指定输出路径的日志框架输出等)。
-
host-manager.2025-07-24.log
与Tomcat的host-manager
管理应用相关的日志。host-manager
是Tomcat内置的虚拟主机管理工具(通过http://localhost:8080/host-manager
访问),用于管理虚拟主机(如添加、删除、配置虚拟主机)。
该日志记录:- 通过
host-manager
工具执行的操作(如创建虚拟主机、修改配置等); - 访问
host-manager
的请求记录、权限验证结果; - 操作过程中出现的错误或异常信息。
- 通过
-
localhost.2025-07-28.log
与Tomcat默认虚拟主机(localhost
)相关的应用程序日志。Tomcat中“虚拟主机”用于隔离不同域名/应用的部署,localhost
是默认虚拟主机。
该日志主要记录:- 部署在
localhost
虚拟主机上的应用程序的运行日志(如Servlet初始化、过滤器执行、应用内部异常等); - 与该虚拟主机相关的系统事件(如部署/卸载应用、配置加载等)。
- 部署在
-
localhost_access_log.2025-07-26.txt
localhost
虚拟主机的HTTP访问日志,记录所有对该虚拟主机上应用的HTTP请求详情,格式通常包含:- 访问时间、客户端IP地址;
- 请求方法(如GET/POST)、请求路径;
- 响应状态码(如200/404/500);
- 响应大小、请求耗时;
- 客户端浏览器/工具标识(User-Agent)等。
用于分析访问量、排查异常请求等。
-
manager.2025-07-24.log
与Tomcat的manager
管理应用相关的日志。manager
是Tomcat内置的应用管理工具(通过http://localhost:8080/manager
访问),用于部署、启动、停止、卸载应用程序等。
该日志记录:- 通过
manager
工具执行的操作(如部署WAR包、重启应用、查看状态等); - 访问
manager
的请求记录、权限验证结果; - 操作过程中出现的错误或异常信息(如部署失败、权限不足等)。
- 通过
总结:这些日志分别覆盖了Tomcat服务器核心运行、虚拟主机管理、应用管理、应用运行及HTTP访问的全链路信息,是排查Tomcat及应用问题的重要依据。
Tomcat 日志的自动切割和保留机制,取决于其日志配置(默认通过 conf/logging.properties
配置)和是否额外引入了外部工具(如 logrotate
),具体情况如下:
1. 带日期的日志(如 host-manager.2025-07-24.log、localhost.2025-07-28.log 等)
这些日志属于 按日期滚动的日志,默认情况下:
- 自动切割:Tomcat 默认配置中,这类日志会通过
java.util.logging
框架按 天 自动切割(即每天生成一个新的日志文件,文件名带上当天日期)。例如,7月24日的操作会记录到host-manager.2025-07-24.log
,7月25日则自动切换到host-manager.2025-07-25.log
,旧文件不再写入。 - 自动保留:Tomcat 默认不会自动删除旧日志,所有历史日志文件会一直保留在
logs
目录下,直到手动删除或通过外部工具清理。
2. catalina.out
这是 Tomcat 的核心控制台日志,默认情况下:
- 自动切割:Tomcat 原生不支持对
catalina.out
进行自动切割,它会一直以追加方式写入同一个文件,随着时间推移文件会越来越大(可能占用大量磁盘空间)。 - 自动保留:由于默认不切割,自然也不存在“保留最近几天”的机制,需要手动配置切割工具(如
logrotate
、cronolog
等)来实现按大小或按时间切割,并设置保留策略(如保留30天的历史文件)。
如何实现自动保留最近几天的日志?
如果需要自动清理旧日志(保留最近 N 天),需额外配置:
- 对于按日期滚动的日志:可修改
conf/logging.properties
,通过配置maxDays
参数限制保留天数(需 Tomcat 8.5+ 版本,旧版本不支持)。例如:# 对 localhost 日志设置保留最近7天 1localhost.org.apache.juli.AsyncFileHandler.maxDays = 7
- 对于 catalina.out:需通过外部工具(如 Linux 的
logrotate
)配置切割和保留策略。例如,创建logrotate
配置文件,设置按天切割、保留30天日志,并自动删除更旧的文件。
总结:
- 带日期的日志默认 按天自动切割,但不自动删除;
catalina.out
默认 不切割、不自动删除;- 若需“自动保留最近几天”,需手动配置 Tomcat 日志参数(针对带日期的日志)或依赖外部工具(针对
catalina.out
)。