日志框架分为日志门面(抽象层)和日志实现
必须要同时具有日志门面和日志实现
日志门面:SLF4j、Commons-Logging(Spring默认框架)
日志实现:Log4j、JUL(java.util.logging)、Log4j2、Logback
SpringBoot默认的日志框架是SLF4j+Logback
如果一个系统中整合了好几个框架,因为每个框架的默认日志框架不一样,所以需要对框架进行统一,而SpringBoot就自动对以上框架进行了统一,通过导入以下的整合包:
ul-to-slf4j、log4j-over-slf4j、jcl-over-slf4j
例子:
package com.atguigu.springboot;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot01HelloworldQuickApplicationTests {
Logger logger= LoggerFactory.getLogger(getClass());
@Test
public void contextLoads() {
//输出级别从低到高
logger.trace("trace日志。。");
logger.debug("debug日志。。");
logger.info("info日志。。");
logger.warn("warn日志。。");
logger.error("error日志。。");
}
}
控制台显示:
没有打印出trace日志和debug日志是因为SpringBoot默认的日志输出级别是info级别,低于info级别的不输出,可以通过在配置文件中增加:
logging.level.com.atguigu=trace
就可以打印所有的日志消息。
还可以通过指定logging.file和logging.path,把日志输出到文件中,logging.file为日志文件名,logging.path为日志输出路径,如果两个都不指定值,那么只在控制台打印消息。
如指定:
logging.file=springBoot.log
那么能在程序根目录下找到这个日志文件
另外,logging.patter.console可以指定在控制台输出的日志格式,logging.patter.file为日志文件中格式。