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

时间:2019-01-08 16:50:18

标签: java logging log4j log4j2

我刚开始使用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中默认的日志记录行为和文件大小是什么?是滚动文件还是每天滚动一次,还是只是一个默认大小的大文件?!

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

1 个答案:

答案 0 :(得分:1)

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>