springboot整合log4j2.xml

导包

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 排除springboot自带的log日志包 -->
            <exclusions>
                <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-log4j2</artifactId>
        </dependency>

log4j2.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--
节点Configuration两个属性status 和 monitorinterval
    有两个子节点:Appenders 和 Loggers(表明可以定义多个 Appender 和Logger)。
    status 用来指定 log4j 本身的打印日志的级别。默认是OFF
    monitorinterval 用于指定 log4j 自动重新配置的监测间隔时间,单位是 s,最小是 5s。
-->
<configuration status="WARN" monitorInterval="30">

    <properties>
        <!--自定义一些常量,之后使用${变量名}引用-->
        <property name="prjname">search</property>
        <!-- 指定文件输出路径 -->
        <property name="logdir">F:/download/logging/${prjname}</property>
        <!--
            %d{HH:mm:ss.SSS} 表示输出到毫秒的时间
            %t 输出当前线程名称
            %-5level 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0
            %logger 输出logger名称,因为Root Logger没有名称,所以没有输出
            %msg 日志文本
            %n 换行
          其他常用的占位符有:
            %F 输出所在的类文件名,如Log4j2Test.java
            %L 输出行号
            %M 输出所在方法名
            %l 输出语句所在的行数, 包括类名、方法名、文件名、行数
        -->
        <property name="PATTERN">%date{YYYY-MM-dd HH:mm:ss,SSS} [%t] %-5level [%L] - %msg%n</property>
    </properties>

    <!--appenders:定义输出内容,输出格式,输出方式,日志保存策略等,常用其下三种标签[console,File,RollingFile]-->
    <appenders>
        <!-- 控制台输出 -->
        <Console name="Console" target="SYSTEM_OUT">
            <!-- 输出格式,不设置默认为:%m%n. -->
            <PatternLayout pattern="${PATTERN}"/>
        </Console>

        <!--
            name:指定Appender的名字。
            fileName:指定输出日志的目的文件带全路径的文件名。
            filePattern:指定新建日志文件的名称格式。
        -->
        <RollingFile name="ErrorAppender" fileName="${logdir}/${prjname}_error.log"
                     filePattern="${logdir}/$${date:yyyy-MM-dd}/${prjname}_error.%d{yyyy-MM-dd-HH}.log" append="true">
            <!-- PatternLayout : 输出格式,不设置默认为:%m%n -->
            <PatternLayout pattern="${PATTERN}"/>
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <!-- Policies : 指定滚动日志的策略,就是什么时候进行新建日志文件输出日志 -->
            <Policies>
                <!-- TimeBasedTriggeringPolicy:Policies子节点,基于时间的滚动策略,interval属性用来指定多久滚动一次,默认是1 hour。modulate=true用来调整时间 -->
                <TimeBasedTriggeringPolicy/>
                <!-- SizeBasedTriggeringPolicy:Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小。-->
                <SizeBasedTriggeringPolicy size="100 MB"/><!-- 表示当文件为100mb时 新创建一个日志文件 -->
                <!-- DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性)。 -->
            </Policies>
        </RollingFile>

        <RollingFile name="DebugAppender" fileName="${logdir}/${prjname}_info.log"
                     filePattern="${logdir}/$${date:yyyy-MM-dd}/${prjname}_info.%d{yyyy-MM-dd-HH}.log" append="true">
            <PatternLayout pattern="${PATTERN}"/>
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

        <!--异步appender-->
        <Async name="AsyncAppender" includeLocation="true">
            <AppenderRef ref="ErrorAppender"/>
            <AppenderRef ref="DebugAppender"/>
        </Async>

    </appenders>

    <Loggers>
        <!--过滤掉spring和mybatis的一些无用的debug信息-->
        <logger name="org.springframework" level="INFO">
        </logger>
        <logger name="org.mybatis" level="INFO">
        </logger>
        <logger name="springfox" level="INFO">
        </logger>
        <logger name="org.apache.http" level="INFO">
        </logger>
        <logger name="com.alibaba.nacos" level="WARN">
        </logger>

        <!--OFF   0-->
        <!--FATAL   100-->
        <!--ERROR   200-->
        <!--WARN   300-->
        <!--INFO   400-->
        <!--DEBUG   500-->
        <!--TRACE   600-->
        <!--ALL   Integer.MAX_VALUE-->
        <Root level="INFO" includeLocation="true">
            <AppenderRef ref="AsyncAppender"/>
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</configuration>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值