众所周知,Mybatis是在ORM领域,使用的较为广泛,而Mybatis日志体系,也是值得我们学习的地方,由于各个厂商都有自己的日志api,基于此,Mybatis对日志进行了封装,来适配各个厂商的日志
1. 日志级别
在Mybatis内部定义了4个级别:
- Error:错误
- warn:警告
- debug:调试
- trance:
2. 日志优先级
error>warn>debug>trance
3. 源码解析
接口
org.apache.ibatis.logging.Log
该接口定义了一系列的常用日志方法,便于日志打印
/**
* 日志相关接口
* @author Clinton Begin
*/
public interface Log {
/**
* 判断debug是否打开
* @return
*/
boolean isDebugEnabled();
/**
* 判断trance是否打开
* @return
*/
boolean isTraceEnabled();
/**
* 错误日志打印
* @param s
* @param e
*/
void error(String s, Throwable e);
void error(String s);
/**
* debug日志打印
* @param s
*/
void debug(String s);
/**
* trance日志打印
* @param s
*/
void trace(String s);
/**
* warn 日志打印
* @param s
*/
void warn(String s);
}
实现类:
基于各个厂商的日志对Log有以下实现,都基本上是根据厂商日志,编写对应的适配器类来调用对应的日志系统
日志集成核心类
org.apache.ibatis.logging.LogFactory