日志推荐
1、在使用日志时应该使用抽象层接口日志框架来记录日志,方便以后的扩展和更换日志框架;
2、日志抽象层框架推荐:
JCL(Jakarta Commons Logging):Spring4以前使用的日志框架,5以后放弃了;
SLF4j(Simple Logging Facade for Java):推荐使用的框架;
jboss-logging:这个日志框架使用较少不推荐使用;
3、日志实现层框架推荐:
JUL(java.util.logging):这个是jdk中自带的日志框架,不推荐使用;
Log4j :这个是老一代的日志框架,也不推荐使用;
Logback:log4j和slf4j以及logback都是都一个人出的日志框架,兼容性更好功能更强大,推荐使用;
Log4j2 :这个是apache在log4j的基础上新出的框架,功能也很强大,但是logback还是首选;
如何使用SLF4J
如上图所示,要使用slf4j日志框架作为抽象层日志框架,首先需要导入slf4j的jar包,然后导入实现了slf4j的日志实现jar包才能正常使用日志记录的功能;
由于log4j和jul是老的日志框架,并没有实现slf4j,所以如果使用log4j或者jul来做日志实现层的日志记录功能,需要引入一个slf4j提供放入适配jar包,从而才能进行正常的日志记录功能;
实际项目中遇到的问题
由于在实际的项目中,我们需要使用和依赖第三方的框架进行操作,这时会出现使用的第三方框架使用的日志并不是我们项目中正使用的日志框架,如果直接排除第三方的日志框架会报错,这个时候该如何让项目中统一使用我们自己选择的日志框架呢?
上图表示的是,如何在项目中使用logback来记录日志的流程;
1、首先需要导入抽象层slf4j的jar包;
2、排除掉各三方框架对应的日志框架依赖包;
3、导入slf4j提供的jcl、log4j、jul的替换包;
4、再导入logback的jar包即可;
替换包所做的功能只是使用其他日志框架的相同类路径,在具体类中对slf4j进行了适配而已;