Tomcat 日志文件名的命名规范

1. 核心日志类型及命名规范

(1) Catalina 日志(引擎级日志)
  • 文件名 :catalina.<yyyy-MM-dd>.log
  • 说明:记录 Tomcat 启动、关闭、严重错误等全局事件。
  • 示例 :catalina.2025-09-07.log
(2) Access 日志(访问日志)
  • 文件名 :localhost_access_log.<yyyy-MM-dd>.txt
  • 说明 :记录所有 HTTP 请求(需配置 <Valve> 启用)。
  • 示例 :localhost_access_log.2025-09-07.txt

如果认证采用GET传参,可能泄露账号密码!

(3) 应用级日志(Host/Context 日志)
  • 文件名 :localhost.<yyyy-MM-dd>.log
  • 说明 :记录特定 Web 应用(如 localhost 虚拟主机)的错误。
  • 示例 :localhost.2025-09-07.log
(4) Manager/Host-Manager 日志
  • 文件名 :manager.<yyyy-MM-dd>.log / host-manager.<yyyy-MM-dd>.log
  • 说明:记录 Tomcat 管理应用的日志。

2. 命名规则详解

  • 日期格式 :固定为 <yyyy-MM-dd>(ISO 8601 格式,区分大小写)。
  • 分隔符 :点号 . 分隔名称组件,日期前后无额外符号。
  • 扩展名 :
    • 默认日志为 .log(如 catalina.2025-09-07.log)。
    • 访问日志为 .txt(如 localhost_access_log.2025-09-07.txt)。

3. 配置自定义命名

通过修改 conf/logging.properties 或 server.xml 可调整命名规则:

示例:修改 Access 日志命名
xml 复制代码
<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="access_log"
       suffix=".log"
       pattern="%h %l %u %t &quot;%r&quot; %s %b"
       fileDateFormat="yyyy-MM-dd.HH" />  <!-- 按小时分割 -->
  • 效果 :生成 access_log.2025-09-07.14.log(小时级分割)。
示例:修改 Catalina 日志命名

在 logging.properties 中:

properties 复制代码
java.util.logging.FileHandler.pattern = %h/tomcat/logs/catalina-%g.log
  • 效果 :生成 catalina-0.log、catalina-1.log(按轮转编号)。

4. 关键注意事项

  • 大小写敏感 :Linux 系统严格区分 catalina.2025-09-07.log 与 Catalina.2025-09-07.log。
  • 轮转机制 :默认按天分割,历史日志会被压缩为 .gz(如 catalina.2025-09-06.log.gz)。
  • 时区影响 :日期基于系统时区,需确保服务器时区配置正确(如 Asia/Shanghai)。

5. 验证配置

检查 conf/server.xml 和 conf/logging.properties 中的以下参数:

  • directory:日志存储路径(默认 logs/)。
  • prefix/suffix:文件名前缀/后缀。
  • rotatable:是否启用按天分割(默认 true)。

通过以上规范,可确保日志文件名清晰、唯一,且便于自动化工具解析和归档。

相关推荐
天河归来8 小时前
第三方接口不稳定,如何让核心任务继续完成
java·大数据
Knight_AL9 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
砚底藏山河10 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
猿究院_夏燊10 小时前
MySQL 的四种隔离级别
java·数据库·mysql
码流子11 小时前
移动收费怎么做?手持终端+App+收费中心的架构实践
java·开发语言·架构
霸道流氓气质11 小时前
AI 流式对话与实时聊天平台:SSE 解码竞态、有状态会话隔离与背压取消的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
云创智城-yuncitys11 小时前
YunParking 4.0:JDK 17 与 Spring Boot 3.2 的停车云升级
java·开发语言·spring boot
文丑颜不良啊11 小时前
LeetCode1661~1680题目解析
java·leetcode
子非鱼@Itfuture11 小时前
关于前后端联调中登录状态/登录信息失效?
java·前端
郭小李11 小时前
openFeign入门
java·开发语言·前端