springboot中的logback-spring.xml配置不同环境打印不同的日志级别
项目代码
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.java</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
package com.java.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } package com.java.demo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author Farben * @version 1.0 * @date 2022/6/22 0:31 */ @RestController @RequestMapping(value = "/log") public class IndexAction { private Logger logger = LoggerFactory.getLogger(IndexAction.class); @GetMapping(value = "/test") public String testLoggerTag() { logger.debug("测试logger标签"); logger.info("测试logger标签"); logger.warn("测试logger标签"); logger.error("测试logger标签"); return "this is spring-boot-logback-demo projects."; } }
logback-spring.xml
<?xml version="1.0" encoding="utf-8"?> <configuration> <contextName>logback-spring-demo-dev</contextName> <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/> <property name="pattern-color" value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %highlight(%msg) %n"/> <property name="LOG_HOME" value="logs"/> <!-- 控制台输出 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${pattern}</pattern> </encoder> </appender> <!-- 控制台输出-带颜色 --> <appender name="CONSOLE-WITH-COLOR" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${pattern-color}</pattern> </encoder> </appender> <springProfile name="local,dev"> <root level="info"> <!--带颜色输出--> <appender-ref ref="CONSOLE-WITH-COLOR"/> </root> <logger name="com.java" level="debug" additivity="false"> <!--不带颜色输出--> <appender-ref ref="CONSOLE"/> </logger> </springProfile> <springProfile name="prod"> <root level="info"> <appender-ref ref="CONSOLE-WITH-COLOR"/> </root> <logger name="com.java" level="info" additivity="false"> <appender-ref ref="CONSOLE"/> </logger> </springProfile> </configuration>
开发环境,测试环境,生产环境,不同的环境,打印不同的日志级别