一、重点
1.常用的日志框架有哪些?各有什么特点?
日志属性 | 对应日志模块包名 | 实现方式 |
---|---|---|
SLF4J | slf4j | 使用SLF4J日志框架实现 |
LOG4J | log4j | 使用Log4J日志框架实现(1.x版本) |
LOG4J2 | log4j2 | 使用Log4J日志框架实现(2.x版本) |
JDK_LOGGING | jdk14 | 使用java.util.logging实现(JUL) |
COMMONS_LOGGING | commons | 使用Apache Commons Logging(JCL)实现 |
STDOUT_LOGGING | stdout | 使用System类实现 |
LOGBACK | stdout | 使用System类实现 |
NO_LOGGING | nologging | 不打印日志 |
SLF4J
:简单日记门面(全称为simple logging Facade for Java),为各种日志框架提供一个简单统一的接口,使我们在切换日志框架的时候可以直接替换jar包就可以了,而无需修改源代码
Jakarta Commons Logging(JCL)
:提供了一个简单的日志抽象,允许开发人员使用特定的日志实现。JCL可以使用其他的日志实现
log4j/log4j2
:分别是log4j的1.x版本和2.x版本,log4j2在性能和设计上都是完胜log4j的1.x版本
logback
:springboot logging默认的日志框架、可以很好的和slf4j日志门面结合
jdklogging
:从jdk1.4起,JDK开始自带一套日志系统。JDK Logger最大的优点就是不需要任何类库的支持,只要有Java的运行环境就可以使用
2.mybatis中日志模块用到了哪几种设计模式?
第一用了工厂模式
mybatis中的日志实例都是Log接口的实现、但是如果用户自己去初始化对象的话可能有复杂的参数等需要构建,这样一来就增加了使用的成本。所以这里使用LogFactory来初始化Log对象,然后用来记录日志
2.适配器模式
Log接口的方法分别是trace、debug、warn和error,但是有些框架并非是用的这几个等级。并且使用方法也不一样。宏观对外使用方法一样、但是内部不一样的转换工作就对给了适配器
3.