springboot 使用log4j2及配置+ 控制台彩色日志

pom依赖修改:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 排除默认日志 -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--  log4j2  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

resources/log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<Configuration status="WARN" monitorInterval="5">
    <!--变量配置-->
    <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
    <!-- %logger{36} 表示 Logger 名字最长36个字符 -->
    <Properties>
        <!-- 定义日志格式 -->
        <Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
        <Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
        <Property name="LOG_LEVEL_PATTERN">%5p</Property>
        <Property name="LOG_PATTERN">%clr{%d{${sys:LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${sys:LOG_LEVEL_PATTERN}} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}
        </Property>
        <!-- 输出无颜色,文件中的颜色字符会乱码-->
        <Property name="FILE_LOG_PATTERN">%d{${sys:LOG_DATEFORMAT_PATTERN}} ${sys:LOG_LEVEL_PATTERN} %pid --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}
        </Property>
        <!-- 定义文件名变量 -->
        <Property name="FILE_PATH">logs/</Property>
        <Property name="FILE_NAME">info.log</Property>
    </Properties>
    <!-- 定义Appender,即目的地 -->
    <Appenders>
        <!-- 定义输出到屏幕 -->
        <Console name="console" target="SYSTEM_OUT">
            <!-- 日志格式引用上面定义的LOG_PATTERN -->
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
        </Console>
        <!-- 定义输出到文件,文件名引用上面定义的FILE_NAME -->
        <RollingFile name="info" bufferedIO="true" fileName="${FILE_PATH}/${FILE_NAME}"
                     filePattern="${FILE_PATH}/%d{yyyy-MM-dd}${FILE_NAME}">
            <!--只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${FILE_LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,1天创建一个文件-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <!-- 根据文件大小自动切割日志 -->
                <SizeBasedTriggeringPolicy size="1MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->
            <!-- 保留最近10份 -->
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
        <!-- error单独写入日志,不需要 直接注释整个RollingFile -->
<!--        <RollingFile name="error" bufferedIO="true" fileName="${FILE_PATH}/error.log"-->
<!--                     filePattern="${FILE_PATH}/%d{yyyy-MM-dd}error.log}">-->
<!--            &lt;!&ndash;控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)&ndash;&gt;-->
<!--            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>-->
<!--            <PatternLayout pattern="${FILE_LOG_PATTERN}" charset="UTF-8"/>-->
<!--            <Policies>-->
<!--                &lt;!&ndash;interval属性用来指定多久滚动一次,1天创建一个文件&ndash;&gt;-->
<!--                &lt;!&ndash; 根据文件大小自动切割日志 &ndash;&gt;-->
<!--                <TimeBasedTriggeringPolicy interval="1"/>-->
<!--                <SizeBasedTriggeringPolicy size="1MB"/>-->
<!--            </Policies>-->
<!--            &lt;!&ndash; DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖&ndash;&gt;-->
<!--            &lt;!&ndash; 保留最近10份 &ndash;&gt;-->
<!--            <DefaultRolloverStrategy max="10"/>-->
<!--        </RollingFile>-->
    </Appenders>
    <Loggers>
        <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
<!--        <Logger name="org.apache.ibatis" level="debug" additivity="false">-->
<!--            <AppenderRef ref="console"/>-->
<!--        </Logger>-->
        <!--监控系统信息-->
        <!--若是additivity设为false,则子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。不会输出未捕捉的异常及jvm异常-->
<!--        <Logger name="org.springframework" level="info" additivity="false">-->
<!--            <AppenderRef ref="Console"/>-->
<!--        </Logger>-->
        <!-- 指定路径的日志打印级别 -->
<!--        <Logger name="com.fjc.demo01.controller.HelloController" level="trace" additivity="false">-->
<!--            <AppenderRef ref="Console"/>-->
<!--        </Logger>-->
        <Root level="info">
            <!-- 对info级别的日志,输出到console -->
            <AppenderRef ref="console" level="info"/>
            <!-- 对error级别的日志,输出到err,即上面定义的RollingFile -->
            <AppenderRef ref="info"/>
            <AppenderRef ref="error"/>
        </Root>
    </Loggers>
</Configuration>

mybaisPlus配置

mybatis-plus:
  configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl

存在问题:

mybatis plus 使用log4j2,输出级别修改为debug还是只会在控制台输出,不会写到日志文件

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值