Tomcat 服务器日志

这些日志文件均来自Tomcat服务器,分别记录不同维度的运行和操作信息,具体如下:

  1. catalina.out

    Tomcat的核心日志文件,记录Tomcat服务器自身的启动、停止、运行过程中的系统级信息,包括:

    • Tomcat启动时的初始化日志(如端口绑定、组件加载等);
    • 服务器运行中的错误信息(如配置错误、组件异常等);
    • 部署在Tomcat上的应用程序输出的标准日志(如应用的System.out/System.err打印内容、未指定输出路径的日志框架输出等)。
  2. host-manager.2025-07-24.log

    与Tomcat的host-manager管理应用相关的日志。host-manager是Tomcat内置的虚拟主机管理工具(通过http://localhost:8080/host-manager访问),用于管理虚拟主机(如添加、删除、配置虚拟主机)。

    该日志记录:

    • 通过host-manager工具执行的操作(如创建虚拟主机、修改配置等);
    • 访问host-manager的请求记录、权限验证结果;
    • 操作过程中出现的错误或异常信息。
  3. localhost.2025-07-28.log

    与Tomcat默认虚拟主机(localhost)相关的应用程序日志。Tomcat中"虚拟主机"用于隔离不同域名/应用的部署,localhost是默认虚拟主机。

    该日志主要记录:

    • 部署在localhost虚拟主机上的应用程序的运行日志(如Servlet初始化、过滤器执行、应用内部异常等);
    • 与该虚拟主机相关的系统事件(如部署/卸载应用、配置加载等)。
  4. localhost_access_log.2025-07-26.txt
    localhost虚拟主机的HTTP访问日志,记录所有对该虚拟主机上应用的HTTP请求详情,格式通常包含:

    • 访问时间、客户端IP地址;
    • 请求方法(如GET/POST)、请求路径;
    • 响应状态码(如200/404/500);
    • 响应大小、请求耗时;
    • 客户端浏览器/工具标识(User-Agent)等。
      用于分析访问量、排查异常请求等。
  5. 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 进行自动切割,它会一直以追加方式写入同一个文件,随着时间推移文件会越来越大(可能占用大量磁盘空间)。
  • 自动保留 :由于默认不切割,自然也不存在"保留最近几天"的机制,需要手动配置切割工具(如 logrotatecronolog 等)来实现按大小或按时间切割,并设置保留策略(如保留30天的历史文件)。

如何实现自动保留最近几天的日志?

如果需要自动清理旧日志(保留最近 N 天),需额外配置:

  1. 对于按日期滚动的日志 :可修改 conf/logging.properties,通过配置 maxDays 参数限制保留天数(需 Tomcat 8.5+ 版本,旧版本不支持)。例如:

    properties 复制代码
    # 对 localhost 日志设置保留最近7天
    1localhost.org.apache.juli.AsyncFileHandler.maxDays = 7
  2. 对于 catalina.out :需通过外部工具(如 Linux 的 logrotate)配置切割和保留策略。例如,创建 logrotate 配置文件,设置按天切割、保留30天日志,并自动删除更旧的文件。

总结:

  • 带日期的日志默认 按天自动切割,但不自动删除
  • catalina.out 默认 不切割、不自动删除
  • 若需"自动保留最近几天",需手动配置 Tomcat 日志参数(针对带日期的日志)或依赖外部工具(针对 catalina.out)。
相关推荐
椰椰椰耶16 分钟前
【Spring】SpringBoot自动注入原理分析,@SpringBootApplication、@EnableAutoConfiguration详解
java·spring boot·spring
不念霉运1 小时前
Gitee:本土化DevOps平台如何助力中国企业实现高效研发协作
运维·gitee·devops
爱喝水的鱼丶1 小时前
SAP-ABAP:ABAP Open SQL 深度解析:核心特性、性能优化与实践指南
运维·开发语言·数据库·sql·性能优化·sap·abap
LZQqqqqo3 小时前
C# 中生成随机数的常用方法
java·算法·c#
葵续浅笑3 小时前
LeetCode - 合并两个有序链表 / 删除链表的倒数第 N 个结点
java·算法·leetcode
2301_793086875 小时前
Springboot 04 starter
java·spring boot·后端
Hey! Hey!6 小时前
在 Ubuntu 22.04 上运行 cAdvisor 时遇到 mountpoint for cpu not found 错误
linux·运维·ubuntu
seabirdssss7 小时前
错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException
java·开发语言
还是鼠鼠8 小时前
tlias智能学习辅助系统--SpringAOP-进阶-通知顺序
java·后端·mysql·spring·mybatis·springboot