SpringBoot默认采用slf4j+logback 的组合形式,但也提供对JUL、log4j2、Logback提供了默认配置。
我们使用IDEA的spring初始化创建一个springboot项目后,运行一下开始方法。控制台输出的一堆如下的信息其实就是日志
在配置文件中配置日志
1.配置日志输出级别
打开测试方法,输入以下代码。
@SpringBootTest class SpringBoot03LoggingApplicationTests { Logger logger= LoggerFactory.getLogger(getClass()); @Test void contextLoads() { //下面的日志级别从低到高。 //默认输出info级别以上的日志信息,可以在配置文件中修改 //追踪运行信息 logger.trace("这是trace日志信息"); //调试信息 logger.debug("这是debug日志信息"); //自定义信息 logger.info("这是info日志信息"); //警告信息 logger.warn("这是warn日志信息"); //错误信息 logger.error("这是error日志信息"); } }
仔细观察你的控制台,发现只有info级别以上的日志,trace和debug没有显示。这个可以在配置文件中进行设置。
#修改指定包的日志输出级别为debug以上
logging.level.top.yelow=debug
#修改整个的默认级别
#logging.level.root=debug
第一个level之后是指定的包,在这个包里面的日志会输出debug级别以上的。
而第二个.root是整个项目的默认级别。不建议修改,因为级别低的日志非常多。
2.输出日志到文件
#输出日志到项目根目录下的springboot.log文件中
logging.file.name=springboot.log
#输出日志到项目所在磁盘的/springboot/log文件夹中的spring.log文件中
#logging.file.path=/springboot/log
当两种方式都存在时,采用的是file方法,所以推荐file方法,file方法也可以指定目录,只要在前面写上完整的磁盘和路径
3.修改日志输出格式
#修改控制台日志输出的格式,以下方法无法修改日志文件的输出格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
#修改日志文件中日志的输出格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>> %logger{50} >>> %msg%n
日志输出格式说明:
%d 输出日期时间,
%thread 输出当前线程名,
%-5level 输出日志级别,左对齐5个字符宽度
%logger{50} 输出全类名最长50个字符,超过按照句点分割
%msg 日志信息
%n 换行符