Commons-logging(JCL)
Jakarta Commons - logging(JCL)是apache最早提供的日志的门面接口。提供简单的日志实现以及日志解耦功能。JCL能够选择使用Log4j (或其他如slf4j等)还是JDK Logging ,但是他不依赖Log4j ,JDK Logging 的API。如果项目的classpath中包含了log4j的类库,就会使用log4j,否则就使用JDK Logging 。使用commons- logging能够灵活的选择使用那些日志方式,而且不需要修改源代码。(类似于JDBC的API接口)原理:JCL有两个基本的抽象类: Log ( 基本记录器 ) 和 LogFactory ( 负责创建 Log 实例 ) 。当 commons- logging. jar 被加入到 CLASSPATH之后,它会合理地猜测你想用的日志工具,然后进行自我设置,用户根本不需要做任何设置。默认的 LogFactory 是按照下列的步骤去发现并决定那个日志工具将被使用的(按照顺序,寻找过程会在找到第一个工具时中止) : ( 1 ) 首先在classpath下寻找commons- logging. properties文件。如果找到,则使用其中定义的Log 实现类;如果找不到,则在查找是否已定义系统环境变量org. apache. commons. logging. Log ,找到则使用其定义的Log 实现类;( 2 ) 查看classpath中是否有Log4j 的包,如果发现,则自动使用Log4j 作为日志实现类;( 3 ) 否则,使用JDK自身的日志实现类(JDK1. 4 以后才有日志实现类);( 4 ) 否则,使用commons- logging自己提供的一个简单的日志实现类SimpleLog ;
< dependency> < groupId> commons-logging</ groupId> < artifactId> commons-logging</ artifactId> < version> 1.2</ version> </ dependency>