log4j2配置文件说明与记录

<?xml version="1.0" encoding="UTF-8"?>
<!--status 级别 status的值有 “trace”, “debug”, “info”, “warn”, “error” and “fatal”;monitorInterval 监控间隔时间读取-->
<configuration status="DEBUG" monitorInterval="60">
    <Properties> <!--Properties 定义常量-->
        <Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS}|%p|%c|%L|%m%n</Property>
        <Property name="logPath">logs</Property>
    </Properties>
    <Appenders> <!--Appenders 输出源,定义日志输出-->
        <!--设置在控制台打印日志-->
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="${pattern}"/>
        </Console>
        <!--设置级别为 DEBUG 日志输出到 debug.log 中-->
        <!--immediateFlush 设置为true时 - 默认值,每次写入后都会进行刷新。这将保证数据写入磁盘,但可能会影响性能。-->
        <!--无论是 RollingRandomAccessFile 或 RollingFile,必须配置一个Policy-->
        <RollingRandomAccessFile name="debug"
                                 immediateFlush="false"
                                 fileName="${logPath}/debug.log"
                                 filePattern="${logPath}/debug-%d{yyyy-MM-dd}.log">
            <Filters> <!--Filters决定日志事件能否被输出。过滤条件有三个值:ACCEPT(接受),DENY(拒绝),NEUTRAL(中立)-->
                <!--设置只输出级别为 debug 的日志-->
                <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<!--如果是info以上级别的日志输出 拒绝-->
                <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${pattern}" charset="UTF-8"/> <!--PatternLayout 用于指定输出日志的格式-->
            <!--Policy是用来控制日志文件何时(When)进行滚动的;Strategy是用来控制日志文件如何(How)进行滚动的-->
            <!--如果配置的是RollingFile或RollingRandomAccessFile,则必须配置一个Policy-->
            <Policies>
                <!--根据当前filePattern配置,日志文件每5分钟滚动一次-->
<!--满足其中一个条件就能触发-->
                <TimeBasedTriggeringPolicy modulate="true" interval="5"/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <!-- 最多保存日志文件的数目 -->
            <DefaultRolloverStrategy max="60"/>
        </RollingRandomAccessFile>
        <RollingRandomAccessFile name="info"
                                 immediateFlush="false"
                                 fileName="${logPath}/info.log"
                                 filePattern="${logPath}/info-%d{yyyy-MM-dd}.log">
            <Filters>
                <ThresholdFilter level="INFO"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${pattern}"/>
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>
            <DefaultRolloverStrategy max="60"/>
        </RollingRandomAccessFile>
        <RollingRandomAccessFile name="warn"
                                 immediateFlush="false"
                                 fileName="${logPath}/warn.log"
                                 filePattern="${logPath}/warn-%d{yyyy-MM-dd}.log">
            <Filters>
                <ThresholdFilter level="WARN"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${pattern}"/>
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>
            <DefaultRolloverStrategy max="60"/>
        </RollingRandomAccessFile>
        <RollingRandomAccessFile name="error"
                                 immediateFlush="false"
                                 fileName="${logPath}/error.log"
                                 filePattern="${logPath}/error-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="${pattern}"/>
            <Filters>
                <ThresholdFilter level="ERROR"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>
            <DefaultRolloverStrategy max="60"/>
        </RollingRandomAccessFile>

    </Appenders>
    <Loggers>
        <Logger name="org.example" level="DEBUG" additivity="true">
            <AppenderRef ref="debug"/>
            <AppenderRef ref="info"/>
            <AppenderRef ref="warn"/>
            <AppenderRef ref="error"/>
        </Logger>
        <!-- org.springframework 只输出 DEBUG 级别以上的日志 -->
        <Logger name="org.springframework" level="DEBUG"/>
        <!-- org.apache 只输出 DEBUG 级别以上的日志 -->
        <Logger name="org.apache" level="DEBUG"/>

         <!-- Root 一定要有,否则 AppenderRef  失效-->
        <Root level="DEBUG">
            <AppenderRef ref="console"/>
            <AppenderRef ref="debug"/>
            <AppenderRef ref="info"/>
            <AppenderRef ref="warn"/>
            <AppenderRef ref="error"/>
        </Root>
    </Loggers>
</configuration>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值