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

log4j2滚动策略未按预期工作

汪正卿
2023-03-14

我有一个Log4j2.xml定义为:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
    <Properties>
        <Property name="log-path">E:/MLM/MLMDomain/servers/${sys:weblogic.Name}/logs</Property>
    </Properties>
    <Appenders>
        <RollingFile name="RollingFile" fileName="${log-path}/MLMServices.log" filePattern="${log-path}/MLMServices-%d{yyyy-MM-dd}-%i.log" >
            <PatternLayout>
                <pattern>%d{dd/MMM/yyyy HH:mm:ss.SSS} [%-5level] [%c{1}] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="1 MB" />
            </Policies>
            <DefaultRolloverStrategy max="30"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="root" level="debug" additivity="false">
           <appender-ref ref="RollingFile" level="debug"/>
        </Logger>
        <Root level="debug" additivity="false">
            <AppenderRef ref="RollingFile"/>
       </Root>
    </Loggers>
</Configuration>

据我所知,当我的日志文件达到1MB时,它应该会滚动到新的日志文件。要滚动的文件数应为30。然而,如果你看看我下面的日志,有超过40个,所有最新的都接近30MB。当前日志文件MLMServices。日志记录了从2016年4月13日至今的条目。事实上,最后几个日志文件是MLMServices-2016-05-24-4。日志,MLMServices-2016-05-24-3。日志等包含2016年4月13日的条目。创建新日志文件时,它会复制上一个日志文件中的条目,然后追加更多条目。因此,每一个新的日志文件都会比前一个略大。

04/28/2016  04:26 PM         1,050,290 MLMServices-2016-04-28-1.log
04/28/2016  06:02 PM         1,188,994 MLMServices-2016-04-28-2.log
04/29/2016  12:11 PM         1,315,487 MLMServices-2016-04-29-1.log
04/29/2016  12:21 PM         1,364,634 MLMServices-2016-04-29-2.log
04/29/2016  12:30 PM         1,413,781 MLMServices-2016-04-29-3.log
04/29/2016  05:02 PM         1,472,373 MLMServices-2016-04-29-4.log
05/03/2016  04:16 PM         2,521,056 MLMServices-2016-05-03-1.log
05/04/2016  04:35 PM         3,379,593 MLMServices-2016-05-04-1.log
05/05/2016  01:47 PM         3,715,698 MLMServices-2016-05-05-1.log
05/05/2016  02:47 PM         3,858,833 MLMServices-2016-05-05-2.log
05/06/2016  02:13 PM         4,908,446 MLMServices-2016-05-06-1.log
05/06/2016  02:46 PM         4,927,119 MLMServices-2016-05-06-2.log
05/06/2016  03:04 PM         5,068,610 MLMServices-2016-05-06-3.log
05/06/2016  05:07 PM         5,267,743 MLMServices-2016-05-06-4.log
05/10/2016  03:16 PM         8,598,426 MLMServices-2016-05-10-1.log
05/10/2016  03:16 PM        11,280,054 MLMServices-2016-05-10-2.log
05/10/2016  03:16 PM        12,328,667 MLMServices-2016-05-10-3.log
05/10/2016  03:16 PM        13,377,298 MLMServices-2016-05-10-4.log
05/10/2016  03:16 PM        14,425,881 MLMServices-2016-05-10-5.log
05/10/2016  03:16 PM        15,474,464 MLMServices-2016-05-10-6.log
05/10/2016  03:16 PM        16,523,059 MLMServices-2016-05-10-7.log
05/10/2016  03:16 PM        17,571,640 MLMServices-2016-05-10-8.log
05/10/2016  03:53 PM        18,620,566 MLMServices-2016-05-10-9.log
05/11/2016  02:37 PM        19,002,926 MLMServices-2016-05-11-1.log
05/11/2016  02:44 PM        19,088,104 MLMServices-2016-05-11-2.log
05/11/2016  03:50 PM        19,375,771 MLMServices-2016-05-11-3.log
05/14/2016  01:51 PM        20,424,415 MLMServices-2016-05-14-1.log
05/16/2016  12:52 PM        21,473,018 MLMServices-2016-05-16-1.log
05/17/2016  07:01 PM        22,521,671 MLMServices-2016-05-17-1.log
05/18/2016  09:57 AM        23,570,365 MLMServices-2016-05-18-1.log
05/18/2016  02:03 PM        24,619,048 MLMServices-2016-05-18-2.log
05/18/2016  08:05 PM        25,667,655 MLMServices-2016-05-18-3.log
05/19/2016  09:18 AM        25,786,502 MLMServices-2016-05-19-1.log
05/19/2016  02:00 PM        26,259,036 MLMServices-2016-05-19-2.log
05/19/2016  05:52 PM        26,593,795 MLMServices-2016-05-19-3.log
05/19/2016  06:26 PM        26,671,744 MLMServices-2016-05-19-4.log
05/20/2016  03:30 PM        27,191,829 MLMServices-2016-05-20-1.log
05/20/2016  05:27 PM        28,240,467 MLMServices-2016-05-20-2.log
05/23/2016  06:10 PM        29,204,271 MLMServices-2016-05-23-1.log
05/24/2016  09:55 AM        29,338,523 MLMServices-2016-05-24-1.log
05/24/2016  10:31 AM        29,441,164 MLMServices-2016-05-24-2.log
05/24/2016  12:04 PM        29,556,676 MLMServices-2016-05-24-3.log
05/24/2016  12:05 PM        29,577,736 MLMServices-2016-05-24-4.log
05/20/2016  05:27 PM        29,734,763 MLMServices.log

这不是我想要的行为。我只希望每个日志文件被限制在1MB,我想保留最多30个日志文件。我在配置中哪里出错了?

提前谢谢

编辑:我实际上已经指定log4j2在weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app 
       http://xmlns.oracle.com/weblogic/weblogic-web-app/1.7/weblogic-web-app.xsd">
    <wls:context-root>XXXXXX</wls:context-root>
    <wls:library-ref>
        <wls:library-name>jax-rs</wls:library-name>
        <wls:specification-version>2.0</wls:specification-version>
        <wls:exact-match>false</wls:exact-match>
    </wls:library-ref>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j</wls:package-name>
            <wls:package-name>log4j</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

共有1个答案

谷梁晟
2023-03-14

您应该检查应用程序之外是否有其他东西正在访问MLM服务。日志在Windows上,如果无法获得独占锁,文件重命名和删除将失败。

 类似资料:
  • 我已经配置了log4j2.xml文件,application.log文件将被创建,它应该每天翻转。 但是在JVM中,applicatoin.log文件在10MB之后会翻转,如果翻转三次,第一个文件会被覆盖。也就是说我随时都application.logapplication-2020-10-16.log.zip. 为什么log4j2(v2.13)即使配置为每日,也会每10MB滚动一次文件?任何在l

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

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

  • 我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它

  • 当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。

  • 我试图使用来传输我根据前面的问题设置的自定义标头。 我在文件中读到... 我的属性包括: