logback-結合spring profile使用


什么是spring profile?

spring profile就是spring的多環境配置功能,可以通過執行激活的profile來進行配置環境的快速切換。

開始使用

創建多個logback配置文件

這里我們使用默認的logback.xml 和 dev環境下的logback-dev.xml。這倆個配置文件之間的區別就是logback-dev.xml不將日志打入到控制台。

logback.xml內容如下:

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

    <!--配置變量-->
    <!--文件路徑前綴-->
    <property name="LOG_HOME_PATH" value="logs"/>
    <property name="encoder_pattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} %cyan(%-5level) [%thread] [%c{0}:%L] %magenta(%logger{36}): %msg%n"/>
    <property name="maxHistory" value="60"/>
    <property name="maxFileSize" value="10MB"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${encoder_pattern}</pattern>
            <!--<charset>UTF-8</charset>-->
        </encoder>
    </appender>
    <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME_PATH}/level_all.%d.%i.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
            <maxFileSize>${maxFileSize}</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>${encoder_pattern}</pattern>
            <!--<charset>UTF-8</charset>-->
        </encoder>
    </appender>
    <!-- 控制台輸出日志級別 -->
    <root level="DEBUG">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE_ALL"/>
    </root>

</configuration>

logback-dev.xml內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="true">
    <!--配置變量-->
    <!--文件路徑前綴-->
    <property name="LOG_HOME_PATH" value="logs"/>
    <property name="encoder_pattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} %cyan(%-5level) [%thread] [%c{0}:%L] %magenta(%logger{36}): %msg%n"/>
    <property name="maxHistory" value="60"/>
    <property name="maxFileSize" value="10MB"/>
    <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME_PATH}/level_all.%d.%i.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
            <maxFileSize>${maxFileSize}</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>${encoder_pattern}</pattern>
            <!--<charset>UTF-8</charset>-->
        </encoder>
    </appender>
    <!-- 控制台輸出日志級別 -->
    <root level="DEBUG">
        <appender-ref ref="FILE_ALL"/>
    </root>
</configuration>

修改spring對應profile的配置文件

這里我們需要在spring不同的profile配置文件中,指定需要logback配置文件。

application.properties內容如下:

spring.profiles.active=dev
logging.config=classpath:logback.xml

application-dev.properties內容如下:

logging.config=classpath:logback-dev.xml

測試代碼

@RunWith(SpringRunner.class)
@SpringBootTest
public class JwtPropertiesTest {
  private static Logger logger = LoggerFactory.getLogger(JwtPropertiesTest.class);
  @Test
  public void test() {
    logger.info("123456789");
  }
}

查看dev配置運行結果

dev運行結果

查看defult配置運行結果

default運行結果

博主微信公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM