通过 Tomcat Azure Web App 使用 logback 滚动文件

问题描述 投票:0回答:1

我有一个 Java 应用程序,它使用带有 logback 的每日滚动文件设置。这在我的笔记本电脑上运行得很好,但是当我将其部署到我的 Azure Web 应用程序(Linux 操作系统上的 Tomcat)时,不会创建这些日志。相反,我在 /home/LogFiles 目录中获取默认日志,其名称如 2023_09_06_ln1sdlwk000181_default_docker。如果我检查实际 tomcat 目录(/usr/local/tomcat/logs)中可用的日志目录,该目录完全是空的。

logback 滚动文件实际上可以与 Linux Azure Tomcat Web 应用程序一起使用吗?如果没有,是否有其他方法将实际日志存储在某个文件中?

我还有一个使用应用程序洞察的附加程序,它似乎确实有效,因此日志回文件被拾取。我的 Azure Web App 的 ${LOGS} 环境变量设置为 ${HOME}/logs (尽管我尝试了多个路径,这似乎没有什么区别)

这是我当前的logback-spring.xml

<appender name="weekly-rolling"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder>
        <pattern>${FILE_LOG_PATTERN}</pattern>
    </encoder>
    <file>${LOGS}/springboot-log.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOGS}/archived-%d{yyyyMMdd}.log</fileNamePattern>
        <maxHistory>7</maxHistory>
    </rollingPolicy>
</appender>

<appender name="aiAppender"
          class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
    <instrumentationKey>${INSTRUMENTATION_KEY}</instrumentationKey>
</appender>

<root level="ERROR">
    <appender-ref ref="weekly-rolling"/>
    <appender-ref ref="aiAppender"/>
</root>

<logger name="com.azure.example" level="TRACE" additivity="false">
    <appender-ref ref="weekly-rolling"/>
</logger>
tomcat logback azure-webapps
1个回答
0
投票

我认为你的意思是 LOGS 变量设置为 $HOME/logs,而不是 ${HOME}/logs。但除此之外,我注意到 Linux 中的 $HOME 默认是指 root 而不是 home。记录器没有 root 的写入权限,因此您看不到任何内容。

例如将其更改为 /home/logs,您可能会看到滚动日志。

© www.soinside.com 2019 - 2024. All rights reserved.