почему логбэк иногда выводит лишние пустые строки - PullRequest
0 голосов
/ 06 мая 2020

Я использую логбэк в качестве фреймворка журнала в моем приложении с весенней загрузкой, оно работало и раньше, но сегодня что-то случилось. Он выводит лишние пустые строки в консоли и файле журнала. я не писал этот код, чтобы приказать экземпляру логгера выводить, но он сделал сам. он все еще выводит дополнительное содержимое журнала. и кажется, что не было потери содержимого журнала.

и по метке времени видно, что пустые строки так близки.

размер файла журнала превышает 30 МБ.

возврат. xml

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

    <springProperty scope="context" name="fileName" source="spring.application.name" defaultValue="jackass"/>

    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径?项目的根路径下的log文件夹,可以使用绝对路径-->
    <property name="LOG_HOME" value="log"/>
    <property name="LOG_NAME" value="${fileName}"/>


    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!--可以引用的属性-->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <property name="FILE_LOG_PATTERN"
              value="${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

    <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
    <logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
    <logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
    <logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
    <logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
    <logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
    <logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%logger{50}  表示类名路径显示50字符。超过则只显示首字母 %n是换行符-->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/${LOG_NAME}%d{yyyy-MM-dd}/%d{HH-mm-ss}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>500MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <!-- 异步输出 -->
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>512</queueSize>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref="FILE"/>
    </appender>

    <!-- 日志输出级别,可以在配置文件中修改 -->
    <root level="INFO">
        <appender-ref ref="FILE"/>
        <appender-ref ref="STDOUT"/>
    </root>

    <logger name="com.dc.crawl" level="INFO" additivity="false">
        <appender-ref ref="FILE"/>
        <appender-ref ref="STDOUT"/>
    </logger>

</configuration>

файл журнала

2020-05-06 10:16:35.328  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 更新订单信息成功 :2020-05-05 16:00:47 ; GW2020050501743252
2020-05-06 10:16:39.712  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:40.040  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 更新订单信息成功 :2020-05-05 23:58:47 ; GW2020050501496179
2020-05-06 10:16:45.156  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:45.234  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:46.061  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 更新订单信息成功 :2020-05-05 23:07:25 ; GW2020050501464221
2020-05-06 10:16:55.577  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:55.671  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:55.718  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:55.983  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:56.061  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:56.123  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:56.170  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:56.233  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:56.482  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 
2020-05-06 10:16:59.243  INFO 1364 --- [pool-1-thread-16] c.d.c.crawler.impl.PlapOrderSynCrawler   : 更新订单信息成功 :2020-05-05
...