当前位置:首页 > 技术 > 正文内容

Tomcat 运行时日志路径定位指南

访客 技术 2026年7月22日 4

当你运行 tail -f /apache-tomcat-8.5.9/logs/blog.log 时,看到的是 Tomcat 实际运行时产生的日志,而这与你以为的部署路径 /root/13/tomcat/tomcat8/apache-tomcat-8.5.9/ 不一致。这种情况通常是由于启动了错误的 Tomcat 实例导致的。

Spring Boot 日志为何写入 /apache-tomcat-8.5.9/logs/blog.log?

因为你的 Spring Boot 应用使用了 logback.xml 配置文件,该文件位于:

/root/13/tomcat/tomcat8/apache-tomcat-8.5.9/webapps/ROOT_spring/WEB-INF/classes/logback.xml

在这个配置中,日志输出路径通常定义为:

${catalina.base}/logs/blog.log

${catalina.base} 是 Tomcat 运行时的环境变量,指向实际启动的 Tomcat 根目录。这里它指向了 /apache-tomcat-8.5.9,而不是你上传程序时的路径。

两个 Tomcat 路径为何不同?

你启动 Tomcat 时使用的命令是:

/apache-tomcat-8.5.9/bin/startup.sh

而不是:

/root/13/tomcat/tomcat8/apache-tomcat-8.5.9/bin/startup.sh
因此 catalina.base 被设置为 /apache-tomcat-8.5.9

如何确认 Tomcat 运行目录?

执行以下命令查看当前 Tomcat 进程:

ps -ef | grep tomcat

输出中会包含类似的信息:

-Dcatalina.base=/apache-tomcat-8.5.9

这表明日志路径是由这个运行中的 Tomcat 实例决定的。

Spring Boot 日志文件名为何是 blog.log?

logback.xml 中有类似如下的定义:

<file>logs/blog.log</file>

因此日志会写入 catalina.base/logs/blog.log,即完整的路径为:

/apache-tomcat-8.5.9/logs/blog.log

为什么 /root/13/.../logs 下没有日志?

  • 路径 /root/13/tomcat/tomcat8/apache-tomcat-8.5.9/ 的 Tomcat 未被启动
  • catalina.base 指向的是另一个 Tomcat 实例(/apache-tomcat-8.5.9
  • 运行时日志不会写入未启动的目录
你当前环境中存在两个 Tomcat 副本,实际运行的是 /apache-tomcat-8.5.9 版本

下一步操作建议

1. 确认当前运行的 Tomcat 路径

ps -ef | grep java

查找输出中的 -Dcatalina.base= 参数,将其值记录下来,以便确认实际启动的是哪个目录。

2. 整理目录关系

目录 用途 运行状态
/apache-tomcat-8.5.9/ 实际启动的 Tomcat 运行中
/root/13/tomcat/tomcat8/apache-tomcat-8.5.9/ 你假设的部署目录 未运行

3. 日志位置总结

  • 应用日志 → /apache-tomcat-8.5.9/logs/blog.log
  • Tomcat 输出日志 → /apache-tomcat-8.5.9/logs/catalina.out

如果你提供启动命令,可以帮助你分析为何启动的是另一个 Tomcat。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。