这里先进行记录,以后有用到可以再回头来看。
市面上的日志框架;
JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j....
日志门面 (日志的抽象层) 日志实现
JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-logging
Log4j JUL(java.util.logging) Log4j2 Logback
左边选一个门面(抽象层)、右边来选一个实现;
日志门面: SLF4J; 日志实现:Logback;
SpringBoot:底层是Spring框架,Spring框架默认是用JCL;‘
SpringBoot选用 SLF4j和logback;
以后开发的时候,直接调用日志抽象类的方法。
要导入相应的包。要导入什么包,看下面这张图。
每一个日志的实现都有自己的配置文件,使用slf4后,配置文件
还是相应的日志实现框架的配置文件。slf4j只是一个门面。
用一个官方的包来替换他,狸猫换太子!
具体操作步骤:
1.将系统中其他日志框架先排除除去:即比如导入spring的时候
就别导入commons-logg。。
2.用中间包来替换原有的日志框架。
3.我们再来导入slf4j其他的实现。
引入新的框架后,我们要这个框架依赖的日志框架清除掉就OK。
总结:
1.spring boot底层也是使用slf4j+logback的方式来进行记录日志。
2.spring boot也把其他的日志都转换成了slf4j
利用中间转换包:
spring boot 默认帮我们写好了日志了。
在spring boot中可以直接使用:
Logger logger = LoggerFactory.getLogger(getClass());
使用的时候:
logger.trace("这是trace日志"); logger.debug("这是debug日志"); //spring boot 默认使用的是info级别 logger.info("这是info日志"); logger.warn("这是warn日志l"); logger.error("这是error日志");
注意:
级别是依次递增的。默认使用info级别。使用的是级别以上的。
如果仅仅像上面那样运行,只会打印出来info即以上的。
如何修改呢?
可以在配置文件中修改:
使用logback-spring.xml,不要使用logback.xml
因为使用logback.xml,它就直接被日志框架加载,没有经过spring boot。
而且他不能使用profile功能。
使用logback-spring.xml可以使用spring boot高级的profile功能。
logback-spring.xml,有spring boot解析日志资源。
自定义的日志文件放在resource文件夹下:
可以在日志文件中写下面的内容:
具体使用事例:
注意,具体配置dev在之前的多profile中有说过:
1.在配置文件中:
spring.profiles.active=dev
2.在运行按钮里的Program arguments里写:
--spring.profiles.active=dev
切换日志框架:
可以按照slf4j的日志适配图进行相关的切换。图在上面。
(那张图来自slf4j的官网)
ji
即先排除相关的依赖,再把需要想日志框架的依赖导进来。
在pom.xml中里写,技巧:
在<artifactId>里写了slf4j 自动补全后,也会把<groupId>补全。