logback-结合spring profile使用
2020-08-15 本文已影响0人
coderchenhao
什么是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运行结果博主微信公众号
<img src="https://gitee.com/chenhaogit/blogimages/raw/master/xsj/wzgzh-8cm.jpg" style="float:right"/>