springboot配置日志格式化输出到文件

前言

springboot可以配置日志输出控制台格式,输出到文件,利用logback配置可实现


一、application.yml指定配置文件路径

# 日志配置
logging:
    config: classpath:logback-spring.xml

二、logback-spring.xml 配置内容

在项目 Resource文件目录下新建logback-spring.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="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} %line : %msg%n"/>
    <property name="FILE_PATH" value="logs/application_log.%d{yyyy-MM-dd}.%i.log"/>

    <!--    控制台输出-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!--    日志输出到文件-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${FILE_PATH}</fileNamePattern>
            <!-- 日志保存7天 -->
            <maxHistory>7</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 单个日志文件的最大,超过则新建日志文件存储 -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

        <!--   格式化json输出  -->
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <pattern>
                    <pattern>
                        {
                        "tags": "info_log",
                        "application": "${spring.application.name}",
                        "timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",
                        "log_level": "%level",
                        "thread": "%thread",
                        "class_name": "%class",
                        "line_number": "%line",
                        "message": "%message",
                        "stack_trace": "%exception{50}"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

    <!--    日志输出级别-->
    <logger name="com.linzhip.jdbcconnect" level="INFO"/>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

</configuration>

码字不易,如果有帮助到点个赞趴~~


版权声明:本文为m4330187原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。