当我尝试将Spring Boot应用程序部署到Payara(Glassfish 4)时,我收到了大量日志,最终耗尽了我的所有磁盘空间。
日志记录似乎是在某种递归循环中(见下文)。
虽然我可以通过关闭unknown.jul.logger的日志记录来完成部署工作,但我宁愿不尝试首先登录。还显示了logback配置。
关于这里可能会发生什么的任何想法?
更多信息:
它的SLF4JBridgeHandler定义了unknown.jul.logger。
15:29:50.448000 INFO 1296 --- [输出泵] unknown.jul.logger: 2017-01-24 15:29:50.421000 INFO 1296 --- [输出泵] unknown.jul.logger:2017-01-24 15:29:50.399000 INFO 1296 --- [ing 输出泵] unknown.jul.logger:2017-01-24 15:29:50.378000 INFO 1296 --- [输出泵] unknown.jul.logger:2017-01-24 15:29:50.350000 INFO 1296 --- [输出泵] unknown.jul.logger: 2017-01-24 15:29:50.328000 INFO 1296 --- [输出泵] unknown.jul.logger:2017-01-24 15:29:50.307000 INFO 1296 --- [ing 输出泵] 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>
答案 0 :(得分:2)
确认这是由以下原因引起的:
这是由Payara劫持控制台输出并重定向到记录器引起的,Spring Boot作为依赖项提供的日志记录桥接器将输出到您选择的任何统一记录器(例如,logback)。如果将logback配置为登录到控制台,则会进入永不停止记录的循环。
解决方案是确保logback不会登录到控制台。