log4j2配置

209 阅读1分钟
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF">
    <!-- 定义日志存放目录 -->
    <properties>
        <property name="logPath">/systemLog/log</property>
        <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
        <property name="ROOT_LEVEL" value="INFO"/>
        <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t-%L] %-5level %logger[36] %L %M : %msg%n</property>
        <property name="PATTERN_CONSOLE">%style{%d{ISO8601}}{bright,green} %highlight{%-5level}
            [%style{%t}{bright,blue}] %style{%C{1.}}{bright,yellow}: %msg%n%style{%throwable}{red}
        </property>
    </properties>

    <!--先定义所有的appender(输出器) -->
    <Appenders>

        <!--Console -->
        <Console name="ConsoleLog" target="SYSTEM_OUT">
            <PatternLayout pattern="${PATTERN_CONSOLE}" disableAnsi="false" noConsoleNoAnsi="false"/>
        </Console>

        <!--debug-->
        <RollingFile name="DebugLog" fileName="${logPath}/debug.log"
                     filePattern="${logPath}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.zip">
            <ThresholdFilter level="DEBUG"/>
            <PatternLayout pattern="${PATTERN}"/>
            <SizeBasedTriggeringPolicy size="10M"/>
        </RollingFile>

        <!--Info-->
        <RollingFile name="InfoLog" fileName="${logPath}/info.log"
                     filePattern="${logPath}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.zip">
            <ThresholdFilter level="INFO"/>
            <PatternLayout pattern="${PATTERN}"/>
            <SizeBasedTriggeringPolicy size="10M"/>
        </RollingFile>

        <!--Error-->
        <RollingFile name="ErrorLog" fileName="${logPath}/error.log"
                     filePattern="${logPath}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.zip">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout pattern="${PATTERN}"/>
            <SizeBasedTriggeringPolicy size="10M"/>
        </RollingFile>

    </Appenders>

    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
    <Loggers>
        <Root level="${ROOT_LEVEL}">
            <appender-ref ref="ConsoleLog"/>
            <appender-ref ref="DebugLog"/>
            <appender-ref ref="InfoLog"/>
            <appender-ref ref="ErrorLog"/>
        </Root>
    </Loggers>
</Configuration>