温馨提示×

tomcat日志路径如何修改

小樊
45
2026-08-20 15:37:36
栏目: 智能运维

Apache Tomcat 中,日志路径并不是由某一个统一配置决定的,而是分散在几个地方。下面按最常见、最规范的方式给你说明如何修改。


一、Tomcat 自带日志(catalina、localhost 等)

1️⃣ 修改日志输出目录(logging.properties)

Tomcat 使用 JULI(java.util.logging) 作为默认日志实现。

配置文件位置:

$TOMCAT_HOME/conf/logging.properties

示例:修改 catalina 日志路径

默认类似:

1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs

改为你自己的目录:

1catalina.org.apache.juli.AsyncFileHandler.directory = /data/tomcat/logs

同样可以修改其他日志:

2localhost.org.apache.juli.AsyncFileHandler.directory = /data/tomcat/logs
3manager.org.apache.juli.AsyncFileHandler.directory = /data/tomcat/logs
4host-manager.org.apache.juli.AsyncFileHandler.directory = /data/tomcat/logs

重启 Tomcat 生效


二、修改 catalina.out 日志路径(非常重要)

catalina.out 不是 logging.properties 控制的,而是由启动脚本决定。

方式一:修改 catalina.sh(推荐)

编辑:

$TOMCAT_HOME/bin/catalina.sh

找到:

CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

改为:

CATALINA_OUT="/data/tomcat/logs/catalina.out"

✅ 重启 Tomcat 生效


方式二:修改 setenv.sh(更优雅)

如果不存在就新建:

$TOMCAT_HOME/bin/setenv.sh

内容:

export CATALINA_OUT="/data/tomcat/logs/catalina.out"

赋予执行权限:

chmod +x setenv.sh

三、使用 Log4j / Logback(生产环境推荐)

如果你使用 Log4j2 或 Logback,日志路径由它们自己控制。

Log4j2 示例

<File name="FileAppender" fileName="/data/tomcat/logs/app.log">
    <PatternLayout pattern="%d %p %c - %m%n"/>
</File>

Logback 示例

<file>/data/tomcat/logs/app.log</file>

⚠️ 此时 Tomcat 自带 logging.properties 基本不再生效


四、Linux 系统服务方式(systemd)

如果是 systemd 启动 Tomcat,还需检查:

/etc/systemd/system/tomcat.service

是否限制了日志目录(如 ReadWritePaths)。


五、常见排查点

问题 原因
修改不生效 没重启 Tomcat
catalina.out 仍在旧目录 只改了 logging.properties
没权限 目录权限不足
日志不滚动 使用 logrotate 或日志框架

六、推荐生产配置总结 ✅

catalina.out → 改 catalina.sh / setenv.sh
Tomcat 运行日志 → 改 conf/logging.properties
应用日志 → 用 Log4j2 / Logback


如果你愿意,可以告诉我:

  • Tomcat 版本(8 / 9 / 10)
  • Linux 还是 Windows
  • 想改的是 catalina.out 还是 应用日志

我可以给你一份完全贴合你环境的配置示例

0