Spring Boot日志配置

Spring Boot支持的日志框架有:Java Util Logging,Log4J 和 Logback,我们可以看到默认使用的是Logback,使用INFO级别输出:
这里写图片描述

输出日志级别控制

如果我们启动jar包方式启动项目,按debug启动调试模式命令为:

 java -jar .\spring-boot-0.0.1-SNAPSHOT.jar --debug

如果在.properties配置文件中加入debug=true或者.yaml配置文件中加入debug: true则会在后台输出更多内容,但是不会启用DEBUG输出级别.

一、默认的配置文件配置(不建议使用:不够灵活)


在.properties配置格式:logging.level.* = LEVEL
1. 其中LEVEL可以为TRACE,DEBUG,INFO,WARN,ERROR,FATAL, OFF
2. *为包名或者Logger名
例如:

logging.level.com.example.mx=WARN
logging:
  level:
    com.example.mx:
      DEBUG

二、引用外部配置文件


Logback配置方式
  Spring Boot默认会加载logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy文件,新建放在 src/main/resources 下面即可
  使用自定义配置方式:

logging.config=classpath:logging-config.xml

    注意:Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),不要使用logback来命名,否则Spring Boot将不能完全实例化.

如果你不想用默认的名字作为日志配置文件,.properties可以配置日志文件如:

logging.config=classpath:logging-config.xml

三、多环境输出日志


<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds" debug="false">

    <!-- 文件输出格式 -->
    <property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />
    <!-- test文件路径 -->
    <property name="TEST_FILE_PATH" value="/logs" />
    <!-- pro文件路径 -->
    <property name="PROD_FILE_PATH" value="/logs" />

    <!-- 开发环境 -->
    <springProfile name="dev">
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${PATTERN}</pattern>
            </encoder>
        </appender>

        <logger name="com.example.mx" level="debug"/>

        <root level="DEBUG">
            <appender-ref ref="CONSOLE" />
        </root>
    </springProfile>

    <!-- 测试环境 -->
    <springProfile name="test">
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${PATTERN}</pattern>
            </encoder>
        </appender>
        <!-- 每天产生一个文件 -->
        <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路径 -->
            <file>${TEST_FILE_PATH}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 文件名称 -->
                <fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 文件最大保存历史数量 -->
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>

            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${PATTERN}</pattern>
            </layout>
        </appender>

        <!-- <logger name="com.example.mx" level="debug"/> -->

        <root level="debug">
            <appender-ref ref="TEST-FILE" />
            <appender-ref ref="CONSOLE" />
        </root>
    </springProfile>

    <!-- 生产环境 -->
    <springProfile name="prod">
        <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${PRO_FILE_PATH}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${PROD_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${PATTERN}</pattern>
            </layout>
        </appender>

        <root level="warn">
            <appender-ref ref="PROD_FILE" />
        </root>
    </springProfile>
</configuration>

在.properties中配置spring.profiles.active=test
在.yaml中配置

spring:
  profiles:
    active: dev

即可选用springProfile 中的配置


其他更多详细配置可以参考:Spring Boot 日志配置(超详细)

猜你喜欢

转载自blog.csdn.net/mxjesse/article/details/80233158