如何自定义我的 log4j2.xml 参数

How to customize my log4j2.xml parameters

我刚开始使用 log4j 2。我刚开始,准备了如下log4j2.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%msg%n" />
        </Console>
        <File name="MyFile" fileName="manager.log" immediateFlush="true" append="false">
            <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console" />
            <AppenderRef ref="MyFile"/>
        </Root>
    </Loggers>
</Configuration>

我的 xml 中的默认日志记录行为和文件大小是多少?它是滚动文件,还是每天一次,或者只是一个默认大小增长的大文件?!

如果没有,我如何将其更改为最大 10mb 的 2 个滚动文件?

File appender 没有翻转行为,它只是追加到指定的文件。当 append = "false" 时,它将在应用程序重新启动时覆盖任何现有文件。

Rolling File Appender 可能就是您要找的。

手册中有很多示例,但这可能与您的想法很接近:

1   <?xml version="1.0" encoding="UTF-8"?>
2   <Configuration status="warn" name="MyApp" packages="">
3     <Appenders>
4       <RollingFile name="RollingFile" fileName="logs/app.log"
5                    filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
6         <PatternLayout>
7           <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
8         </PatternLayout>
9         <Policies>
10          <TimeBasedTriggeringPolicy />
11          <SizeBasedTriggeringPolicy size="10 MB"/>
12        </Policies>
13        <DefaultRolloverStrategy max="2"/>
14      </RollingFile>
15    </Appenders>
16    <Loggers>
17      <Root level="error">
18        <AppenderRef ref="RollingFile"/>
19      </Root>
20    </Loggers>
21  </Configuration>