16

我需要以某种方式将 Tomcat 日志文件公开给浏览器。我知道这不安全,但这就是所要求的。

我考虑过从日志位置建立硬链接,例如tomcat/webapps/ROOT/html/catalina.out-> mydir/logs/catalina.out,但我认为这不是一个好的解决方案(即使它确实有效)。是否有将 Tomcat 日志文件暴露给浏览器的既定方法?

4

1 回答 1

19

对分发配置的这种修改将通过 Tomcat DefaultServlet 的服务通过 HTTP 公开 Tomcat 日志。已通过 7.0.56、8.0.24 的 Tomcat 发行版确认。

出于本示例的目的,规范的 Tomcat 发行版被解压到 /opt/tomcat。

/opt/tomcat/conf/Catalina/localhost创建logs.xml具有此内容的文件时:

<Context override="true" docBase="/opt/tomcat/logs" path="/logs" />

重新启动 Tomcat。浏览到您知道的日志文件,例如

  • 本地主机:8080/日志/catalina.out

如果您还希望能够浏览日志列表,请建议此附加配置更改。

编辑/opt/tomcat/conf/web.xml. 在listings配置参数的地方,通过将其值设置为打开它true

...
<servlet>
...
<init-param>
<param-name>listings</param-name>
<param-value> true </param-value>
</init-param>
...

重新启动您的 tomcat 以使更改生效。在浏览器中进行此测试时,希望将日志文件列表视为可点击链接

  • 本地主机:8080/日志/

由于安全性或性能/资源使用问题,这些设置可能不适用于某些生产环境。

从某种意义上说,这是对此项的改写: 在 Java Web 应用程序中从应用程序服务器外部提供静态数据的最简单方法

了解更多(在这个问题的参差不齐的边缘)

以及有用的文档

于 2015-12-04T19:07:54.417 回答