Tomcat 服务器日志

发布于:2025-07-31 ⋅ 阅读:(23) ⋅ 点赞:(0)

在这里插入图片描述

这些日志文件均来自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+ 版本,旧版本不支持)。例如:
    # 对 localhost 日志设置保留最近7天
    1localhost.org.apache.juli.AsyncFileHandler.maxDays = 7
    
  2. 对于 catalina.out:需通过外部工具(如 Linux 的 logrotate)配置切割和保留策略。例如,创建 logrotate 配置文件,设置按天切割、保留30天日志,并自动删除更旧的文件。

总结:

  • 带日期的日志默认 按天自动切割,但不自动删除
  • catalina.out 默认 不切割、不自动删除
  • 若需“自动保留最近几天”,需手动配置 Tomcat 日志参数(针对带日期的日志)或依赖外部工具(针对 catalina.out)。

网站公告

今日签到

点亮在社区的每一天
去签到