【日志】定时任务每分钟都执行了,但是业务日志却不再继续打印

 

发现问题:
一个应用,在跑定时任务,每分钟跑一次,arthas 发现定时任务每分钟都在执行,但是 日志文件却一条业务日志都没打印出来。
发现问题时候,是 下午15点,但是日志文件显示最近一条业务日志是凌晨5点打印出来的。
而且,日志文件的 时间戳,也是下午15点,即代表 往日志文件写的动作一直都在发生,但就是没写进日志文件中去。

 

 

 

 

 



logback配置的也是不丢失:

<appender name="ASYNC_APP" class="ch.qos.logback.classic.AsyncAppender">
    <!-- 建议不丢失日志,设置为0 -->
    <discardingThreshold>0</discardingThreshold>
    <!-- 更改默认的队列的长度,该值会影响性能,默认值为256 -->
    <queueSize>512</queueSize>
    <appender-ref ref="APP" />
</appender>

 





根本原因:

应用所在的实例 磁盘满了,导致 业务正常执行,但日志文件未能正常记录到日志文件中。

 


logback.xml完整配置如下:

Logback的AsyncAppender与RollingFileAppender原理

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<define name="INSTANCE_CODE" class="com.XXX.amp.log.logback.InstanceCodePropertyDefiner"/>

<property name="AMP_PRO_CODE" value="${AMP_PRO_CODE}"/>
<property name="AMP_APP_CODE" value="${AMP_APP_CODE}"/>
<property name="LOG_HOME" value="/web/logs/app/${AMP_PRO_CODE}/${AMP_APP_CODE}/${INSTANCE_CODE}"/>

<appender name="APP" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_HOME}/app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_HOME}/app.log%d{yyyy-MM-dd}
        </fileNamePattern>
        <maxHistory>7</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%c] [%X{tid}] - %m%n
        </pattern>
    </encoder>
</appender>

<appender name="ASYNC_APP" class="ch.qos.logback.classic.AsyncAppender">
    <!-- 建议不丢失日志,设置为0 -->
    <discardingThreshold>0</discardingThreshold>
    <!-- 更改默认的队列的长度,该值会影响性能,默认值为256 -->
    <queueSize>512</queueSize>
    <appender-ref ref="APP" />
</appender>

<!-- log output to console -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%c] [%X{tid}] - %m%n</pattern>
    </encoder>
</appender>



<root level="info">
    <if condition='"${devMode}".equals("true")'>
        <then>
            <appender-ref ref="CONSOLE"/>
        </then>
    </if>
    <appender-ref ref="ASYNC_APP" />
</root>

</configuration>

 

posted @ 2024-03-29 16:46  Angel挤一挤  阅读(10)  评论(0编辑  收藏  举报