Log4j2 配置

使用需要的依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-web</artifactId>
    <version>2.11.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.11.1</version>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>

配置文件:log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
    configuration 属性
        monitorInterval: 置配置文件的动态加载时间(s),在程序运行过程中,如果修改配置文件,程序会随之改变。
        status: 设置 log4j 日志框架内部输出的日志级别

    日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL
-->
<configuration status="error" monitorInterval="5">
    <!--配置变量-->
    <Properties>
        <!-- 配置输出格式 -->
        <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS}  %-5level [%t] %c{36} - %m%n"/>
        <!-- 定义日志存储的路径 -->
        <property name="FILE_PATH" value="更换为你的日志路径"/>
        <property name="FILE_NAME" value="更换为你的项目名"/>
    </Properties>

    <appenders>

        <!-- 控制台输出日志,target: SYSTEM_OUT / SYSTEM_ERR(普通格式 / 异常格式) -->
        <console name="Console" target="SYSTEM_OUT">
            <!-- 输出日志的格式 -->
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <!--
                日志匹配规则
                    onMatch: ACCEPT / DENY(匹配该级别及以上级别 / 不匹配该级别及以上级别)
                    onMismatch: ACCEPT / DENY(匹配该级别以下级别 / 不匹配该级别以下级别)
            -->
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
        </console>

        <!-- 以单个文件形式输出日志,append: true / false(追加 / 覆盖) -->
        <File name="Filelog" fileName="${FILE_PATH}/test.log" append="false">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </File>

        <!--
            按照指定条件(按照时间、大小)阈值设置日志存档规则
            属性 filePattern: 表示达到阈值后文件存档路径和文件命名规格(包括是否压缩,若压缩指定后缀)
        -->
        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log"
                     filePattern="${FILE_PATH}/$${date:yyyy-MM}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!-- interval 属性用来指定多久滚动一次,默认是 1 hour-->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                <!-- 当文件达到设定阈值时,会滚动一次(保存为新文件) -->
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- 该路径下最多能存放多少个文件,大于该数值后覆盖旧的文件,默认是 7 个 -->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

    </appenders>

    <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->
    <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->

    <!--
        logger 的优先级要高于 root,多个 logger 的优先级是根据 name 属性匹配的完整度进行确定,匹配越精确,
        优先级越高。优先级高的为子 logger,优先级低的为父 logger,即 root 为所有 logger 的父 logger。

        logger 属性
            name: 用于单独配置日志级别和输出的 package 或 class
            additivity:
                false: 只会在优先级最高的 logger 中输出,不会在父 logger 中输出
                true: 除了在本 logger 中输出以外,还会根据本 logger 配置的 level 级别,在父 logger 中
                      根据其输出类型进行输出。
    -->
    <loggers>

        <logger name="org.mybatis" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </logger>

        <root level="info">
            <appender-ref ref="Console"/>
        </root>

    </loggers>

</configuration>

配置文件中 logger 和 root 解释
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建以下日志效果:
warn 及其以下级别显示为白色,即在控制台使用 SYSTEM_OUT 格式输出
error 级别显示为红色,即在控制台使用 SYSTEM_ERR 格式输出
在这里插入图片描述
配置如下:

<!-- 用于输出 SYSTEM_OUT 类型日志 -->
<console name="console_out" target="SYSTEM_OUT">
    <PatternLayout pattern="${LOG_PATTERN}"/>
    <!-- 输出 error 以下级别的日志信息 -->
    <ThresholdFilter level="error" onMatch="DENY" onMismatch="ACCEPT"/>
</console>

<!-- 用于输出 SYSTEM_ERR 类型日志 -->
<console name="console_err" target="SYSTEM_ERR">
    <PatternLayout pattern="${LOG_PATTERN}"/>
    <!-- 输出 error级别的日志信息 -->
    <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
</console>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值