美文网首页
springboot 日志 logback-spring.xml

springboot 日志 logback-spring.xml

作者: faymanwang | 来源:发表于2020-12-29 19:30 被阅读0次

log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。

  1. 日志存放路径
<property name="LOG_HOME" value="./logs/${APP_NAME}"/>
  1. 自定义包路径输出日志等级
    <!--此配置优先级 appender>logger>root-->
    <logger name="com.baoxian.dao" level="trace"/>
  1. 多环境配置,也可以在yml里面配置
    <springProfile name="dev">
        <root level="info">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="INFO-FILE"/>
            <appender-ref ref="ERROR-FILE"/>
        </root>
    </springProfile>
    <springProfile name="test,prod">
        <root level="TRACE">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="INFO-FILE"/>
            <appender-ref ref="ERROR-FILE"/>
        </root>
    </springProfile>
  1. 完整的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
    <property name="LOG_HOME" value="./logs/${APP_NAME}"/>
    <property name="FORMAT" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{25} - %msg%n"/>
    <property name="RollingMaxHistory" value="10"/>
    <property name="RollingFileNamePattern" value="${LOG_HOME}/%d{yyyy-MM-dd}.%i"/>


    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>


    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>


    <!-- 生成INFO日志文件 -->
    <appender name="INFO-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${RollingFileNamePattern}/info/%d{yyyy-MM-dd}.%i-info.log</FileNamePattern>
            <!--日志文件最大的大小-->
            <maxFileSize>500MB</maxFileSize>
            <!--日志文件保留天数-->
            <MaxHistory>${RollingMaxHistory}</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>${FORMAT}</pattern>
        </encoder>
        <!-- 打印日志级别 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>debug</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 生成ERROR日志文件 -->
    <appender name="ERROR-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${RollingFileNamePattern}/error/%d{yyyy-MM-dd}.%i-error.log</FileNamePattern>
            <!--日志文件最大的大小-->
            <maxFileSize>500MB</maxFileSize>
            <!--日志文件保留天数-->
            <MaxHistory>${RollingMaxHistory}</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>${FORMAT}</pattern>
        </encoder>
        <!-- 打印日志级别 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--此配置优先级 appender>logger>root-->
    <logger name="com.baoxian.dao" level="trace"/>

    <springProfile name="dev">
        <root level="info">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="INFO-FILE"/>
            <appender-ref ref="ERROR-FILE"/>
        </root>
    </springProfile>
    <springProfile name="test,prod">
        <root level="TRACE">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="INFO-FILE"/>
            <appender-ref ref="ERROR-FILE"/>
        </root>
    </springProfile>


    <!-- 减少nacos日志 -->
    <!--    <logger name="com.alibaba.nacos" level="ERROR"/>-->

</configuration>

相关文章

网友评论

      本文标题:springboot 日志 logback-spring.xml

      本文链接:https://www.haomeiwen.com/subject/cgjqoktx.html