当前位置: 首页 > 知识库问答 >
问题:

Log4j2 TimeBasedTriggering策略没有按预期工作

许丁雷
2023-03-14

我已经配置了log4j2.xml文件,application.log文件将被创建,它应该每天翻转。

<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- Log4j2 Configuration                                                  -->
<!-- ===================================================================== -->

<Configuration status= "INFO">
    <!-- Common properties used in all appenders -->
    <Properties>
        <Property name="logBaseDirectory">/apps/wsserver/8.5/bpm/logs/log4j/sbl</Property>          
        <Property name="logPattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p %c{1} %X{transaction.id} %m%n</Property>
        <Property name="maxFileAge">90d</Property>
    </Properties>
    
    <!-- Define required appenders -->  
    <Appenders>
        <!-- ============================================================================================================================================ -->
        <!--                                                log4j 1.x to 2.x migratoin steps                                                              -->
        <!-- DailyRollingFileAppender rolling file appender is no longer availble in log4j2. So we need to use RollingFile with TimeBasedTriggeringPolicy --> 
        <!-- Right most value in filePattern will be considered as Interval for TimeBasedTriggeringPolicy rolling                                         -->
        <!-- Orignal log file will be application.log and archive will be application-20200917.log.zip - Auto compression of file                         -->
        <!-- Remove the all archived logs which are older than 90 days                                                                                    -->
        <!-- ============================================================================================================================================ -->
        <RollingFile name="application" fileName="${logBaseDirectory}/application.log" filePattern="${logBaseDirectory}/application-%d{yyyy-MM-dd}.log.zip">
            <PatternLayout pattern="${logPattern}"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy />
                <CronTriggeringPolicy />
            </Policies>
             <DefaultRolloverStrategy>
                <Delete basePath="${logBaseDirectory}" maxDepth="1">
                    <IfFileName glob="application-*.log.zip" />
                    <IfLastModified age="${maxFileAge}" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    
    <!-- Define the list of loggers required -->
    <Loggers>   
        <logger name="MediationServices" level="TRACE" additivity="false">          
            <appender-ref ref="application" />
        </logger>
        
        <root level="TRACE" additivity="false">         
            <appender-ref ref="application" />
        </root>
    </Loggers>  
</Configuration>

但是在JVM中,applicatoin.log文件在10MB之后会翻转,如果翻转三次,第一个文件会被覆盖。也就是说我随时都application.logapplication-2020-10-16.log.zip.

为什么log4j2(v2.13)即使配置为每日,也会每10MB滚动一次文件?任何在log4j2配置中标识问题的指针都非常明确。

共有1个答案

柳豪
2023-03-14

问题已经确定。AS

 类似资料:
  • 我想为我们拥有的一些用例实现数据回放,为此,我需要使用Kafka保留策略(我使用的是连接,我需要窗口时间才能准确)。附言:我正在使用Kafka版本0.10.1.1 我将数据发送到主题中,如下所示: 我创建的主题如下: Kafka主题--创建--zookeeper localhost:2181--复制因子1--分区1--主题myTopic Kafka主题--zookeeper localhost--

  • 我有一个Log4j2.xml定义为: 据我所知,当我的日志文件达到1MB时,它应该会滚动到新的日志文件。要滚动的文件数应为30。然而,如果你看看我下面的日志,有超过40个,所有最新的都接近30MB。当前日志文件MLMServices。日志记录了从2016年4月13日至今的条目。事实上,最后几个日志文件是MLMServices-2016-05-24-4。日志,MLMServices-2016-05-

  • 我搞不清这里出了什么问题。如有任何帮助,我们将不胜感激。

  • 我在使用R的group_by和SUMMARY函数时遇到了一些问题,我想知道你们是否可以帮我一些忙。我有一张类似的表格: 我试图使用dplyr的group_by和SUMMARY来找到频率列的平均值。下面是我的示例代码: 我所期望的是,一个表格被吐出来,分解按单个类别分组的平均频率,如下所示: 但是,我收到的是一个按类别分组的表,每个类别接收整个表的平均值,如下所示: 有什么线索吗?我应该说我是初学者

  • 现在,在我的drools项目中,我在单独的DRL文件中有两组规则,它们由议程组分割。对于议程组“preCheck”,我将该议程组中的每个规则的自动聚焦设置为true。例子: 对于另一个议程组-“default规则”-规则没有设置自动焦点属性。示例: 在通过RESTAPI调用规则时,我还试图通过JSON负载将焦点设置为“preCheck”议程组。例子: 然而,在执行规则时,似乎首先要评估“defau

  • 我正试图将一个阻塞消费者集成为Reactor铝-SR1中的助焊剂订户。我想使用一个并行调度器,并发地执行阻塞操作。 我实现了一个主类来描述我意图: