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

Log4j2 rc 1 DefaultRolloverStrategy在7个文件之后覆盖

姜鸿
2023-03-14

我使用的是lo4j2 rc1,其中RollingFile包含TimeBasedTriggeringPolicy、SizeBadeTriggeringPolicy和DefaultRolloverStrategy,最大文件数为50。但是回滚的文件在7个文件之后被覆盖。下面是我的配置

<Appenders>
    <Routing name="ServerLogs">
        <Routes pattern="$${ctx:logRouter}/">
            <Route>
                <RollingFile name="ServerLogs" immediateFlush="false" append="false"
                    fileName="${loghome}/${ctx:logRouter}/ServerLogs.log"
                    filePattern="${loghome}/${ctx:logRouter}/%d{dd-MM-yyyy}-ServerLogs-%i.log.gz">
                    <PatternLayout>
                        <Pattern>%d %p %-40C{1.} [%t] %m %ex%n</Pattern>
                    </PatternLayout>
                    <Policies>
                        <TimeBasedTriggeringPolicy interval="1"
                            modulate="true" />
                        <SizeBasedTriggeringPolicy size="4 MB" />
                        <DefaultRolloverStrategy max="50"/>
                    </Policies>
                </RollingFile>
            </Route>
        </Routes>
    </Routing>
</Appenders>

<Loggers>
    <AsyncLogger name="AsyncServerLogs" level="TRACE" includeLocation="false">
        <AppenderRef ref="ServerLogs"/>
    </AsyncLogger>      
    <Root level="DEBUG"  includeLocation="false">
        <AppenderRef ref="ServerLogs" level="TRACE" />
    </Root>
</Loggers>

我是否缺少任何配置?

共有1个答案

龚昊然
2023-03-14

您的

这不是一项政策,因此它不属于

ERROR Policies has no parameter that matches element DefaultRolloverStrategy

将其向上移动一个级别,使其成为的直接子级。

 类似资料:
  • 我正在尝试替换用Gradle生成的WAR文件中的一个文件。

  • 我在webapp中使用以下log4j RollingFile appender。 使用时,当日志滚动时,旧文件将重命名为具有索引号的文件名(使用%i指定),因此所有旧文件都应重命名并保留。 我通过以下代码以编程方式滚动日志。 但是,在7次滚动之后,现有文件将被删除(未根据指定的重命名),并在新文件中继续日志。 这里有什么问题?

  • 示例我有这两个csv,如何覆盖列的值在a.csv或替换,如果它匹配列中的字符串在a.csv和b.csv 如何输出:或者如何覆盖 我正在尝试使用熊猫,但我不知道接下来会发生什么

  • 文件已经存在,您可以覆盖它 (“是”按钮),跳过 (“否”按钮),重命名,全部重命名 ,覆盖全部文件 (“全部皆是” 按钮),跳过全部已存在的文件 (“全部皆否”按钮) 或取消 当前的操作。 如果您选择了全部重命名 模式,重命名文件将得到象 'filename(N).txt' 的名字,'filename.txt' 的位置是原始的文件名, 'N' 是数字。

  • 在这段代码中,我试图将一个导航栏(content1)覆盖在另一个导航栏(content)之上,但似乎什么都不起作用。我做错了什么?即使我可以使其覆盖,它们也不是以容器为中心放置的。 null null 只是想知道如何将我的导航条覆盖在另一个导航条之上并使其在容器中居中,