慢慢来比较快,虚心学技术
前言:Jakarta Commons-logging(JCL)是apache最早提供的日志的门面接口。它将一些具体的日志组件抽象为接口,实现日志操作的解耦和可插拔,让众多的日志工具有一个共同的操作方式
一、common-logging简单使用示例
如果是maven项目在pom文件中添加依赖如下:
commons-logging
commons-logging
1.2
②创建common-logging.properties文件,将其放在classpath下,如果是maven项目则将其放在src/main/resource目录下,配置内容如下
org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
③在项目程序中使用logger开发
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class CommonsTest {
//获取logger
private final static Log logger = LogFactory.getLog(CommonsTest.class);
public static void main(String[] args) {
//使用logger输出日志
logger.trace("TRACE...");
logger.debug("DEBUG ...");
logger.info("INFO ...");
logger.error("ERROR ...");
logger.warn("WARN...");
}
}
运行输出结果:
[INFO] CommonsTest - INFO ...
[ERROR] CommonsTest - ERROR ...
[WARN] CommonsTest - WARN...
如上实现第一个简单的common-logging程序,引发以下几个问题
问题一:common-logging.properties属性文件中的org.apache.commons.logging.Log和它的值代表了什么?
问题二:为什么明明代码中写了logger.trace和logger.debug,却没有输出?
问题三:LogFactory的实现原理是什么?
带着问题去思考学习,效率总是最高的
二、问题探索
1.org.apache.commons.logging.Log
JCL有两个基本的抽象类: Log( 基本记录器 ) 和 LogFactory( 负责创建 Log 实例 ),其中,Log有多个默认实现类,分别是:</