2、spring 增加logback和环境参数

目录

一、增加logback

二、增加环境参数

三、测试


一、增加logback

根Pom里增加

    <dependencyManagement>      
        <dependencies>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-bom</artifactId>
                <version>2.11.1</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>

        </dependencies>
    </dependencyManagement>

 

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
    </dependencies>

在resource里增加logback-spring.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="3 seconds">
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <contextName>lab</contextName>
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%t] %5p |-%C:%L - %m %n</Pattern>
        </layout>
    </appender>

    <appender name="normalAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/ouer/logs/lab.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>/ouer/logs/%d{yyyy-MM-dd}/lab.%i.log</FileNamePattern>
            <MaxHistory>300</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy	class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%file:%line] -%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="errorAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/ouer/logs/lab.error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>/ouer/logs/%d{yyyy-MM-dd}/lab.error.%i.log</FileNamePattern>
            <MaxHistory>300</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy	class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%file:%line] -%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <springProfile name="prod">
        <root level="INFO">
            <appender-ref ref="normalAppender" />
            <appender-ref ref="errorAppender" />
        </root>
    </springProfile>

    <springProfile name="test">
        <root level="DEBUG">
            <appender-ref ref="normalAppender" />
            <appender-ref ref="errorAppender" />
            <appender-ref ref="stdout" />
        </root>
    </springProfile>

</configuration>

二、增加环境参数

设置启动参数

在resource下增加application.yml

spring:
  profiles:
    active: ${profiles.active}


---
#开发环境配置
spring:
  profiles: test

data:
  name: test

---
#测试环境配置
spring:
  profiles: prod

data:
  name: prod

启动类代码修改打印出环境值

	public static void main(String[] args) {
		ApplicationContext ctx = SpringApplication.run(DemoApplication.class, args);
		String[] activeProfiles = ctx.getEnvironment().getActiveProfiles();
		for (String profile : activeProfiles) {
			System.out.println("Spring Boot profile is:" + profile);
		}

	}

在controller中打印出test环境下的属性值


    @Value("${data.name}")
    private String name;

    @RequestMapping("/getUser")
    public User getUser() {
        User user = new User();
        user.setAge(10);
        user.setName(name);
        logger.info("name:{}", name);
        return user;
    }

三、测试

启动后如下:

环境值改为prod

看log可以看到,当prod时,DEBUG信息不回打印。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值