3

我在 macOS Sierra 上使用 Homebrew 安装了 Apache Tomcat 8.5.9。当我启动 Tomcat 服务器时,catalina.out 没有按预期在 /usr/local/Cellar/tomcat/8.5.9/libexec/logs 中创建。

我努力了:

  • 使用 setenv.sh 将日志文件重定向到另一个位置
  • echo "log file location $CATALINA_OUT"在 /usr/local/Cellar/tomcat/8.5.9/bin/catalina 中,它被设置为 libexec/logs/catalina.out 的默认位置。进行此更改后,我可以看到 setenv.sh 正在正确修改此位置。
  • 在默认位置手动创建 catalina.out 并授予完全权限

我看到其他日志,如:

  • catalina.[日期].log
  • 主机管理器。[日期].log
  • 经理。[日期].log
  • localhost_access_log.[日期].log

Tomcat 服务器运行良好,因为我能够运行我的 WAR 文件并毫无问题地使用我的应用程序。正如我所料,其他日志均未表明创建 catalina.out 存在问题。

4

1 回答 1

1

似乎 Homebrew 重定向了 stdout/stderr ,它覆盖了 Tomcat 提供的配置,并且默认情况下 Homebrew 中的 Tomcat 安装配置没有定义一个文件来记录标准输出和错误。您可以通过修改 Tomcat 的 .plist 文件来更改此设置。

在 Tomcat 安装的基本目录中找到 .plist 文件。对我来说,安装位于 /usr/local/Cellar/tomcat@8/8.5.51,但它可能因 Tomcat 版本而异。该目录中应该有一个类似于 homebrew.mxcl.tomcat@8.plist 的文件。编辑该文件并将以下行添加到 <dict> 元素:

  <key>StandardOutputPath</key>
  <string>/path/to/catalina.out</string>
  <key>StandardErrorPath</key>
  <string>/path/to/catalina.out</string>

注意不要在任何现有的键值对之间插入行。

我选择使用 Tomcat 默认创建的 catalina.out 路径,对我来说是/usr/local/Cellar/tomcat@8/8.5.51/libexec/logs/catalina.out

于 2020-02-26T04:00:06.763 回答