<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Properties>
        <!-- 定义日志格式 -->
        <Property name="log.pattern">[%d{DEFAULT}] [%t/%-5level] %logger{36}: %msg%n</Property>
        <!-- 定义文件名变量 -->
        <Property name="file.info.filename">logs/latest.log</Property>
        <Property name="file.info.pattern">logs/%d{yyyy-MM-dd}-%i.log.gz</Property>
    </Properties>
    <!-- 定义Appender，即目的地 -->
    <Appenders>
        <!-- 定义输出到屏幕 -->
        <Console name="console" target="SYSTEM_OUT">
            <!-- 日志格式引用上面定义的log.pattern -->
            <PatternLayout pattern="${log.pattern}" />
        </Console>
        <!-- 定义输出到文件,文件名引用上面定义的file.info.filename -->
        <RollingFile name="file" bufferedIO="true" fileName="${file.info.filename}" filePattern="${file.info.pattern}">
            <PatternLayout pattern="${log.pattern}" />
            <Policies>
                <!-- 根据文件大小自动切割日志 -->
                <SizeBasedTriggeringPolicy size="1 MB" />
            </Policies>
            <!-- 保留最近10份 -->
            <DefaultRolloverStrategy max="10" />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="all">
            <!-- 对info级别的日志，输出到console -->
            <AppenderRef ref="console" level="all" />
            <!-- 对info级别的日志，输出到file，即上面定义的RollingFile -->
            <AppenderRef ref="file" level="all" />
        </Root>
    </Loggers>
</Configuration>