log4j2.xml 配置及说明

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <!-- AsyncLogger的错误解决方案:log4j2的AsyncLogger本身的逻辑采用了缓冲区思想,使用的是disruptor框架来实现一个环形无锁队列 -->
    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.4.1</version>
    </dependency>
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="debug" monitorInterval="30">
   
    <appenders>
        <!--这个输出控制台的配置-->
        <Console name="STDOUT" >
             <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
            <!-- 输出日志的格式-->
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%logger{50}:%L]  - %msg%n" charset="UTF-8"/>
        </Console>

        <RollingRandomAccessFile name="FILE-INFO" fileName="logs/trace-info.log"
            filePattern="$logs/trace-info.%d{yyyy-MM-dd-HH}.log">
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%logger{50}:%L] %logger{50} - %msg%n" charset="UTF-8" />
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="1"  >
               <Delete basePath="logs" maxDepth="2">
                    <IfFileName glob="*trace-info.*.log" />
                    <IfLastModified age="1d" />
               </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>

        
        <RollingRandomAccessFile name="FILE-DEBUG" fileName="logs/trace-debug.log"
            filePattern="logs/trace-debug.%d{yyyy-MM-dd-HH}.log">
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" />
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}  [%t] %-5level [%logger{50}:%L] %logger{50} - %msg%n" charset="UTF-8" />
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="1"  >
               <Delete basePath="logs" maxDepth="2">
                    <IfFileName glob="*trace-debug.*.log" />
                    <IfLastModified age="1d" />
               </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>
        
        <RollingRandomAccessFile name="FILE-WARN" fileName="logs/trace-warn.log"
            filePattern="logs/trace-warn.%d{yyyy-MM-dd-HH}.log">
            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY" />
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%logger{50}:%L] %logger{50} - %msg%n" charset="UTF-8" />
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
             <DefaultRolloverStrategy max="1"  >
               <Delete basePath="logs" maxDepth="2">
                    <IfFileName glob="*trace-warn.*.log" />
                    <IfLastModified age="1d" />
               </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>
        
        <RollingRandomAccessFile name="FILE-ERROR" fileName="logs/trace-error.log"
            filePattern="logs/trace-error.%d{yyyy-MM-dd-HH}.log">
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%logger{50}:%L] %logger{50} - %msg%n" charset="UTF-8" />
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="1"  >
               <Delete basePath="logs" maxDepth="2">
                    <IfFileName glob="*trace-error.*.log" />
                    <IfLastModified age="1d" />
               </Delete>
            </DefaultRolloverStrategy>
        </RollingRandomAccessFile>
    </appenders>

    <loggers>
        <!-- 配置addtivity="true" 默认是true,标识向上级传递日志(INFO是DEBUG的上级)。只有显示指定为false时,才不会向上级输出 -->
        <AsyncLogger level="DEBUG" name="com.chy.trace.dao" includeLocation="false" additivity="false">
          <appender-ref ref="FILE-DEBUG" />
            <appender-ref ref="STDOUT" />
        </AsyncLogger>
        
        
        <AsyncRoot level="INFO" includeLocation="true" >
            <AppenderRef ref="FILE-INFO" />
            <AppenderRef ref="FILE-WARN" />
            <AppenderRef ref="FILE-ERROR" /> 
            <AppenderRef ref="STDOUT" />
        </AsyncRoot>
    </loggers>
</configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值