什么是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配置運行結果
查看defult配置運行結果
博主微信公眾號
