SpringBoot之——LogBack日志配置与多环境实战

转载请注明出处:https://blog.csdn.net/l1028386804/article/details/80489380

一、Slf4j+Logback的快速实践

spring-boot默认支持logback,所以无需引用任何以来只需要,配置application.properties即可,如果要功能丰富些,则配置下logback.xml。

1、在application.properties里配置的方式

logging.file=./springboot.log
这是最简便的方法,默认级别是info,要改级别的话还要在appliacation.properties里增加一行
logging.level.org.springframework.web=INFO

2、配置logback-spring.xml

在 src/main/resources 下面创建logback.xml (根据不同环境来定义不同的日志输出,那么取名为logback-spring.xml 即可,官方优先推荐使用-spring.*的配置方式)文件。
logback-spring.xml 文件:


    
    
 
在代码中调用:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private Logger logger =  LoggerFactory.getLogger(this.getClass());
具体使用起来特别的简单,那么来解读一下配置文件。

二、配置文件解读

logback-spring.xml文件:


    
    
在这个文件定义了一个 捕获 org.springframework.web 的日志,日志级别是 INFO,上面引用的base.xml 文件内容为:



    
    
    
    
    
        
        
    
这个base.xml是Spring Boot的日志系统预先定义了一些系统变量:
PID,当前进程ID{LOG_FILE},Spring Boot配置文件(application.properties|.yml)中logging.file的值,${LOG_PATH}, Spring Boot配置文件中logging.path的值
同时默认情况下包含另个appender——一个是控制台,一个是文件,分别定义在console-appender.xml和file-appender.xml中。同时对于应用的日志级别也可以通过application.properties进行定义:
* 如果在 logback.xml 和 application.properties 中定义了相同的配置(如都配置了org.springframework.web)但是输出级别不同,则实际上 application.properties 的优先级高于 logback.xml *

三、多环境日志输出

根据不同环境(prod:生产环境,test:测试环境,dev:开发环境)来定义不同的日志输出,在 logback-spring.xml中使用 springProfile 节点来定义,方法如下:
【注意文件名称不是logback.xml,想使用spring扩展profile支持,要以logback-spring.xml命名】



    
    
    
    
     
        
        
        
    

    
    
        
        
        
    
可以启动服务的时候指定 profile (如不指定使用默认),如指定prod 的方式为:
java -jar xxx.jar --spring.profiles.active=prod

四、总结

在Spring Boot 中记录日志只需两步:
1、在 src/main/resources 下面创建logback.xml 文件,并按上面讲述的进行配置。
或者使用最简单的方法在 application 配置文件中配置。
2、在Java代码中创建实例,并在需要输出日志的地方使用。
// 在Java类中创建 logger 实例
private Logger logger = LoggerFactory.getLogger(this.getClass());
// 在方法中使用日志输出,如
public void logTest() {
    logger.debug("日志输出测试 Debug");
    logger.trace("日志输出测试 Trace");
    logger.info("日志输出测试 Info");
}

你可能感兴趣的:(SpringBoot,SpringBoot)