log4j2日志组件简单总结——异步模式

1.依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <!-- 排除自带的logback依赖 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>   <!-- 排除自带的logback依赖 -->
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
       <dependency><!--log4j2异步支持-->
            <groupId>com.lmax</groupId>
            <artifactId>disruptor</artifactId>
            <version>3.3.6</version>
        </dependency>

 

2.配置文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="patternLayout">%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level [%logger{50}:%L] [%X{X-B3-TraceId},%X{X-B3-SpanId}] - %msg%n</Property>
        <Property name="logdir">D:/wwwww</Property>
    </Properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="${patternLayout}"/>
        </Console>

        <RollingFile name="DebugLogger" fileName="${logdir}/logs/debug/log.log"
                     filePattern="${logdir}/logs/debug/%d{yyyy-MM-dd-HH}.log.gz" append="true">
            <PatternLayout pattern="${patternLayout}"/>
            <DefaultRolloverStrategy ><!--日志清楚策略,清除指定目录下指定文件名指定时间修改时间内的日志-->
                <Delete basePath="${logdir}/logs/debug" maxDepth="2">
                    <IfFileName glob="*.log" />
                    <IfLastModified age="48h" />
                </Delete>
            </DefaultRolloverStrategy>
            <Policies><!--日志滚动策略,常用的根据文件大小,根据时间滚动-->
                <!--注意:滚动周期是根据filePattern的日期格式化参数精度来的,如下interval="1"每小时切换新的日志文件-->
               <!-- <TimeBasedTriggeringPolicy modulate="true" interval="1"/>-->
               <SizeBasedTriggeringPolicy size="1 MB"/>
            </Policies>

        </RollingFile>

        <!--此处省略其他几个个级别的RollingFile类型的appender InfoLogger ErrorLogger-->

        <!--除了console,RollingFile这些常用的appender,还有socket,kafka,jms,nosql,jdbc,SMTP,flume等-->
        <!--ELK日志收集,也可通过filebeat完成-->
        <Socket name="Logstash" host="192.168.199.128"  port="4560" protocol="TCP">
            <PatternLayout>${patternLayout}</PatternLayout>
        </Socket>

    </Appenders>

    <loggers>
        <AsyncLogger name="springfox" level="OFF"/> <!--swagger2日志输出为关闭级别-->
        <AsyncRoot level="INFO">  <!--异步模式<AsyncRoot>需要依赖jar包disruptor,同步模式<root/>-->
            <appender-ref ref="DebugLogger" level ="debug" />
            <appender-ref ref="InfoLogger" level="info"/>
            <appender-ref ref="ErrorLogger" level="error"/><!--比AsyncRoot的级别低,输出的日志级别是error-->
            <appender-ref ref="Logstash" level="info"/> <!--日志输出到logstash-->
        </AsyncRoot>
    </loggers>
</Configuration>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值