首页 > 解决方案 > 在 Azure 应用服务中访问 Tomcat 和 Webapp 日志

问题描述

我有一个自定义 docker 映像,其中包含已部署到 Azure 容器注册表的 Spring Boot 应用程序,现在它作为应用程序服务运行。该容器正在运行 Tomcat 8.5,因此我在目录中创建了catalina.out日志和我自己的自定义webapp.log文件/usr/local/tomcat/logs。在 Azure 之外的 docker 容器中运行,我可以访问和查看日志。

但是,部署在应用服务中我无法检索实际的日志文件,并且我可以看到日志的唯一位置是在日志流中。我正在使用 log4j2 并且有一个正确的配置文件。在此处输入图像描述

有没有办法访问 Tomcat catalina 和 webapp 日志?是否可以将 webapp.log 定向到/home/LogFiles/定义容器

我尝试使用以下 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
    <Property name="filename">webapp.log</Property>
    <Property name="path">$HOME\LogFiles</Property>
</Properties>
<Appenders>
    <Console name="STDOUT" target="SYSTEM_OUT">
        <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
    </Console>
    <File name="LOGFILE" fileName="${path}\${filename}">
        <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
    </File>
</Appenders>
<Loggers>
    <Logger name="appLogger" level="debug">
        <AppenderRef ref="LOGFILE" level="debug"/>
    </Logger>
    <Root level="info">
        <AppenderRef ref="STDOUT"/>
    </Root>
</Loggers>
</Configuration>

标签: javaazurespring-boottomcatazure-web-app-service

解决方案


为了检索日志文件,我使用 Kudu 通过 SSH 连接到 tomcat 应用程序的主目录。连接后,将 /usr/local/tomcat/logs/ 的日志文件复制到可通过 ftp 访问的目录,您可以在其中使用 Filezilla 下载它们。第 1 步 - 复​​制:/home/#> cp /usr/local/tomcat/logs/*.log ./LogFiles/ 第 2 步 - 使用 Filezilla ftp 到应用程序的 /LogFiles 文件夹,您应该在其中看到复制的日志。全选,右键,下载。

我不知道您如何将 tomcat 日志文件直接发送到 LOGFILES 文件夹。我认为tomcat 网站的 Azure 应用程序服务主机是一个 dockerized 容器应用程序,而应用程序服务 /LOGFILES/ 位置是外部存储。


推荐阅读