spring boot使用slf4j配合占位符日志彩色配置

spring boot 已经默认集成了slf4j,所以无需再导入其他依赖包

spring boot 默认是加载resource目录下的logback.xml日志配置,如果没有找到再去找logback-test.xml

所以在resource建立logback.xml文件,配置如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 彩色日志依赖的渲染类 -->
    <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}}" />

    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!--
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
-->

    <!-- Console 输出设置 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>E:\\demo\\demo.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover 保存历史记录到这个文件夹一日起为后缀 -->
            <fileNamePattern>E:\\demo\\demo.log.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>10MB</maxFileSize>
        </triggeringPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"></appender-ref>
        <appender-ref ref="FILE"></appender-ref>
    </root>
</configuration>

说明:appender的输出设置为:CONSOLE,引用: <pattern>${CONSOLE_LOG_PATTERN}</pattern>

使用设置:

<root level="INFO">

<appender-ref ref="CONSOLE"></appender-ref>

<appender-ref ref="FILE"></appender-ref>

</root>

日志使用:

private final Logger logger = LoggerFactory.getLogger(GirlController.class);

占位符的使用:

logger.info("id:{}, age: {}",girl.getId(),girl.getAge());

控制台依旧能保持彩色日志,以及占位已经生效

看保存的路径,而且通过配置文件的方式文件会被追加. 如果使用的是application.properties的方式.文件是会被覆盖的

良好的格式:

猜你喜欢

转载自blog.csdn.net/qq_28524127/article/details/81276225
今日推荐