Commons-logging(JCL)

Posted CaoPengCheng&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Commons-logging(JCL)相关的知识,希望对你有一定的参考价值。

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>

以上是关于Commons-logging(JCL)的主要内容,如果未能解决你的问题,请参考以下文章

日志组件

spring boot 让日志带上颜色

如何从 Gradle 中的所有依赖项中忽略特定的传递依赖项

SpringBoot 日志

日志框架总结

这个 jcl 代码有啥作用?