没有使用spring boot应用程序登录外部tomcat

Posted

技术标签:

【中文标题】没有使用spring boot应用程序登录外部tomcat【英文标题】:No logging in external tomcat with spring boot application 【发布时间】:2021-06-30 17:58:57 【问题描述】:

我正在尝试将 Spring Boot 应用程序日志记录到外部 tomcat 中的单独目录(apps-archive 即 $catalina.base/logs/apps-archive/log.log)。启动服务器后,日志文件为空,catalina.2021-04-04.log 文件中有一些关于应用程序部署的日志,所以......

在我的 Spring Boot 应用程序中,我在 src/main/resources 中有 logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %d [%thread] %-5level %-50logger40 : %msg%n
            </pattern>
        </encoder>
    </appender>

    <property name="LOG_PATH" value="$catalina.base/logs/apps-archive"/>







    <appender name="SAVE-TO-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <file>$LOG_PATH/log.log</file>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
                %d [%thread] %-5level %-50logger40 : %msg%n
            </Pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>
                $LOG_PATH/log_%ddd-MM-yyyy_%i.log
            </fileNamePattern>
            <maxFileSize>20MB</maxFileSize>
            <maxHistory>10</maxHistory>
            <totalSizeCap>400MB</totalSizeCap>
        </rollingPolicy>

    </appender>


    <springProfile name="dev">
        <root level="info">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="SAVE-TO-FILE"/>
        </root>

        <!-- Hibernate loggers -->
        <logger level="DEBUG" name="org.hibernate"/>
        <logger level="INFO" name="com.commerzbank.eudsgvo"/>
        <logger level="DEBUG" name="org.hibernate.type.descriptor.sql"/>
        <logger level="DEBUG" name="org.springframework"/>
    </springProfile>

</configuration>

我没有登录 application.properties 文件的配置。谁能告诉我为什么服务器上的应用程序存档目录中的日志文件为空。

【问题讨论】:

在你的描述中你写$catalina.base/log/apps-archive/log.log,但在你的xml文件中你有$catalina.base/logs/apps-archive,即logs而不是log 现已编辑,感谢您的信息。 您是否使用弹簧型材运行dev,参考&lt;springProfile name="dev"&gt;。是不是你应该把它改成&lt;springProfile name="default"&gt; 我用过这个,是的,它现在可以工作了,但它没有遵循文件大小为20MB的RollingPolicy,而是在单个文件中增加日志。 【参考方案1】:

Spring Boot 应用程序运行的默认配置文件是 default

你能改一下吗

<springProfile name="dev">

<springProfile name="default">

关于 RollingPolicy 的问题,我目前没有任何想法。

【讨论】:

以上是关于没有使用spring boot应用程序登录外部tomcat的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak - spring boot - 外部登录网页

Spring boot 1.4登录外部tomcat

Spring Boot 多重身份验证适配器

Spring Boot 多重身份验证适配器

spring boot 登录重定向外部地址,出现跨域问题 怎么办?

使用Spring Boot Starter安全性中的Custom登录页面成功登录,没有进入下一页