SpringBoot学习-03

SpringBoot日志


日志框架

SpringBoot选用SLF4J和logback

如何让系统中所有的日志统一到slf4j

  1. 将系统中其他日志框架排除出去
  2. 用中间包来替换原来的日志框架
  3. 导入slf4j的其他实现

SpringBoot日志关系

springboot通过该依赖实现日志功能

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-logging</artifactId>
      <version>2.1.4.RELEASE</version>
      <scope>compile</scope>
</dependency>

SpringBoot日志依赖关系
SpringBoot学习-03
如果引入了其他框架,必须把该框架的默认日志依赖移除,SpringBoot能自动适配所有的日志,底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可;

SpringBoot日志使用

springboot默认日志级别为info
指定包的日志级别

logging.level.com.wlj=trace
 //记录器
    Logger logger = LoggerFactory.getLogger(this.getClass());
    @Test
    public void contextLoads() {
        //日志的级别,由低到高
        //可以调整日志级别
        logger.trace("这是trace信息");
        logger.debug("这是debug信息");
        logger.info("这是info信息");
        logger.warn("这是warn信息");
        logger.error("这是error信息");
    }

一些日志配置

 日志输出格式: 
 %d表示日期时间,          
 %thread表示线程名,          
 %‐5level:级别从左显示5个字符宽度          
 %logger{50} 表示logger名字长50个字符,否则按照句点分割。           
 %msg:日志消息,          
 %n是换行符              
%d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n
#不指定路径,在当前项目下生成springboot04.log日志文件
#logging.file=springboot04.log
#在指定的路径中创建日志文件,默认为spring.log,如何路径文件夹不存在则会自动
#生成文件夹
logging.path=/springboot/log

#在控制台输出的日志格式
logging.pattern.console=%d{yyyy‐MM‐dd} [%thread] %level - %logger{50} ‐ %msg%n
#在指定文件中日志的输出格式
logging.pattern.file=%d{yyyy‐MM‐dd} [%thread] %level - %logger{50} ‐ %msg%n

指定配置
给类路径下放上每个日志框架自己的配置文件即可;SpringBoot就不使用他默认配置的了
SpringBoot学习-03

logback.xml:直接就被日志框架识别了;
logback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot 的高级Profile功能

<springProfile name="staging">   
  可以指定某段配置只在某个环境下生效    
</springProfile>