将启用 logback spring 的启动应用程序部署到 Glassfish 4/Payara 会生成大量日志记录

Deploying a logback enabled spring boot app to Glassfish 4/Payara generates gigs of logging

当我尝试将 Spring 启动应用程序部署到 Payara (Glassfish 4) 时,我收到大量日志,最终耗尽了我的所有磁盘 space。

日志记录似乎处于某种类似这样的递归循环中(见下文)。

虽然我可以通过关闭 unknown.jul.logger 的日志记录来使部署正常工作,但我宁愿不让它尝试首先登录。还显示了 logback 配置。

关于这里可能发生的事情有什么想法吗?

更多信息:

SLF4JBridgeHandler 定义了 unknown.jul.logger。

15:29:50.448000 INFO 1296 --- [ing output pump] unknown.jul.logger : 2017-01-24 15:29:50.421000 INFO 1296 --- [ing output pump] unknown.jul.logger : 2017-01-24 15:29:50.399000 INFO 1296 --- [ing output pump] unknown.jul.logger : 2017-01-24 15:29:50.378000 INFO 1296 --- [ing output pump] unknown.jul.logger : 2017-01-24 15:29:50.350000 INFO 1296 --- [ing output pump] unknown.jul.logger : 2017-01-24 15:29:50.328000 INFO 1296 --- [ing output pump] unknown.jul.logger : 2017-01-24 15:29:50.307000 INFO 1296 --- [ing output pump] unknown.jul.logger : 2017-01-24

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <!-- Defined variables etc. -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <!-- overridden two properties -->
    <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}000){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%logger){cyan} %clr(:){faint} %m%n%wex"/>
    <property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS}000 %5p ${PID:- } --- [%t] %logger : %m%n%wex"/>

    <!--  copied from base.xml -->
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <jmxConfigurator/>

    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d</fileNamePattern>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

确认这是由以下原因引起的:

这是由 Payara 劫持控制台输出并重定向到记录器引起的,Spring Boot 作为依赖项提供的日志记录桥随后将通过管道输出到您选择的任何统一记录器(例如 logback)。如果 logback 配置为记录到控制台,它将进入一个永无止境的记录循环。

解决方案是确保 logback 不会登录到控制台。