SpringBoot日志介绍
日志分为:日志抽象层和日志实现层,也就是我们口中说的接口和实现类。SpringBoot选择的日志抽象层是SLF4J(simple logging facade for java),日志实现层是Logback。SpringBoot引入其它框架的时候,首先是排除其它框架的默认日志框架。
SLF4J使用
开发的时候应该调用日志抽象层的方法,不必去关心日志的实现层。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
// 获取一个日志记录器
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
}
}
每一个日志框架都有自己的配置文件,这些配置文件被日志实现层使用。
SpringBoot统一日志管理
一个系统,通常有很多框架组成,Spring(commonts-logging)、Hibernate(Jboss-logging),不同的框架依赖不同的日志框架。我们想要做的是统一使用SLF4J+Logback来进行日志的输入。首先,把其它框架依赖的日志jar包给排除掉;然后,引入"偷天换日"的jar包,这个jar包底层调用的是SLF4J接口。这样就可以实现日志统一了,具体操作,请看SLF4J官网。
SpringBoot日志关系
1、SpringBoot底层使用SLF4J+Logback的方式进行日志记录。
2、SpringBoot也把其它日志都替换成了SLF4J。
3、如果在SpringBoot项目中引入其他框架,一定要把这个框架默认的日志依赖移除掉!
SpringBoot日志配置
根据需要设置日志配置
#指定包,设置级别
logging.level.com.feige=debug
logging.file=feige.log
logging.pattern.file=xxx
SpringBoot指定配置文件
在类路径下,放入日志框架所需要的配置文件即可,SpringBoot就不使用他自己默认的配置了。配置文件的名字,SpringBoot官网都规定好了,查看即可。官方建议使用spring为前缀的xml文件,由SpringBoot解析这段配置,这样就可以启用SpringBoot自带的功能。可以指定某段配置,只在某个环境下生效,<springProfile>这个标签就是这个功能。
SpringBoot切换日志框架
开发过程中,一般不会用到切换日志这个功能,如果遇到了,首先排除相关日志实现框架,然后添加相应的适配包,最后引入新的日志实现框架。