日志模块
日志模块作为一个通用的功能,在系统里通常会使用第三方的日志框架。
Java 的日志框架有很多,比如:JUL(Java Util Logging)、Log4j、Logback、Log4j2,Tinylog等。除此之外,还有JCL
(Apache Commons Logging)和 SLF4J 这样的“门面日志”。
下面是 SLF4J 与日志框架 Logback、Log4j 的关系图:
什么是“门面日志”?
“门面日志”利用了设计模式中的门面模式思想,对外提供一套通用的日志记录的API,而不提供具体的日志输出服务,如果要实现日志输出,需要集成其他的日志框架,比如Log4j、Logback、log4j2等。
这种门面模式的好处在于,记录日志的API和日志输出的服务分离开来,代码里面只需要关注记录日志的API,通过SLF4J指定的接口记录日志;而日志输出通过引入JAR包的方式即可指定其他的日志框架。当我们需要改变系统的日志输出服务时,不用修改代码,只需要改变引入日志输出框架的JAR包即可。