springboot+mybatis+log4j日志sql输出和文件输出

pom引入依赖:

        <dependency>
            <!-- 排除 spring-boot-starter-logging -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 其他依赖省略 -->
        <!-- 引入 Log4j2 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

定义log4j.xml配置文件

此处配置名为:Log4j2-spring.xml
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<!-- Log4j2 配置文件 参考 https://www.cnblogs.com/keeya/p/10101547.html  -->
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- monitorInterval=“N” 自动间隔 N 秒检测配置文件是否修改,有修改则自动重新加载配置 可以不设置  -->
<!-- status="warn" Log4j2 本身日志输出级别 可以不设置 -->
<configuration monitorInterval="30" status="warn">
    <!-- 变量配置 -->
    <Properties>
        <!-- 日志输出格式 -->
        <property name="LOG_PATTERN"
                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level} [%t] %highlight{%c{1.}.%M(%L)}: %msg%n"/>
        <!-- 日志输出到文件的路径和文件名 根据项目情况更改 value 值 -->
        <property name="LOG_FILE_PATH" value="logger"/>
        <property name="LOG_FILE_NAME" value="log4j2"/>
    </Properties>
    <!-- 定义 appenders -->
    <appenders>
        <!-- console 设定 控制台输出 -->
        <console name="Console" target="SYSTEM_OUT">
            <!-- 指定 输出格式 默认 %msg%n -->
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <!-- onMatch="ACCEPT" 只输出 level 级别及级别优先级更高的 Log , onMismatch="DENY" 其他拒绝输出  -->
            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
        </console>
        <!-- 将日志全部输出到 test.log,append="true" 表示重新运行时不删除日志 -->
        <File name="FileLog" fileName="${LOG_FILE_PATH}/test.log" append="true">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </File>
        <!-- RollingFile 滚动输出日志到文件 -->
        <!-- 输出 warn 及更高优先级的 log 到 LOG_FILE_PATH 目录下的 warn.log 文件  -->
        <!-- filePattern 指定 warn.log 文件大于 size 大小时候文件处理规则, %d 日期;%i 编号(最大为下方设置的 max 值) -->
        <RollingFile name="RollingFileWarn" fileName="${LOG_FILE_PATH}/warn.log"
                     filePattern="${LOG_FILE_PATH}/%d{yyyy-MM-dd}/WARN_${LOG_FILE_NAME}_%i.log.gz">
            <PatternLayout pattern="${LOG_PATTERN}" />
            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <!-- interval="N" ,N小时滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <!-- size="5MB" 指定日志输出文件大小,若大小超过size,则日志会自动存入按 filePattern 规则建立的文件夹下面并进行压缩 -->
                <SizeBasedTriggeringPolicy size="5MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy 不设置的情况下,默认为最多同一文件夹下7个 filePattern 规矩建立的压缩文件,多于 max 的值将用新的文件覆盖就的压缩文件 -->
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
        <!-- 输出 error 及更高优先级的 log 到 LOG_FILE_PATH 目录下的 error.log 文件  -->
        <RollingFile name="RollingFileError" fileName="${LOG_FILE_PATH}/error.log"
                     filePattern="${LOG_FILE_PATH}/%d{yyyy-MM-dd}/ERROR_${LOG_FILE_NAME}_%i.log.gz">
            <PatternLayout pattern="${LOG_PATTERN}" />
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="5MB"/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
        <!-- 输出 info 及更高优先级的 log 到 LOG_FILE_PATH 目录下的 info.log 文件  -->
        <RollingFile name="RollingFileInfo" fileName="${LOG_FILE_PATH}/info.log"
                     filePattern="${LOG_FILE_PATH}/%d{yyyy-MM-dd}/Info_${LOG_FILE_NAME}_%i.log.gz">
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="5MB"/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </appenders>

    <!-- 在 Loggers 引入 Appender 使其生效 -->
    <loggers>
        <!-- Logger 节点用来单独指定 package 包下的 class 的日志输出格式等信息 -->
        <logger  name="org.springframework" level="info" additivity="false">
            <!-- 指定 org.springframework 的 level 及更高优先级的日志只在控制台输出 -->
            <!-- additivity="false" 只在自定义的Appender中进行输出 -->
            <AppenderRef ref="Console"/>
        </logger >

        <Root level="info">
            <!-- 用来指定项目的 Root 日志规则,如果没有单独指定Logger,那么就会默认使用 Root 日志输出 -->
            <!-- AppenderRef 用来指定日志输出到哪个 Appender -->
            <AppenderRef ref="Console"/>
            <AppenderRef ref="FileLog"/>
            <AppenderRef ref="RollingFileInfo"/>
            <AppenderRef ref="RollingFileWarn"/>
            <AppenderRef ref="RollingFileError"/>
        </Root>
    </loggers>
</configuration>

application.yml文件配置:
在这里插入图片描述

logging:
  config: classpath:Log4j2-spring.xml
  pattern:
    console: "%d-%msg%n"
  level:
    root: info
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值