Commons-logging是经典的通用日志框架,它提供了记录日志的一些通用API,即提供了记录日志的接口,具体实现由已有的日志记录框架如:log4j、JDK Logging等实现。Commons-logging自己也有一个简单记录日志实现,在其它具体实现框架都不存在的情况下,它将使用自己的简单日志实现。
经典的黄金搭档是:commons-logging+ log4j,即:由commons-logging提供记录日志的接口,由log4j提供具体实现。
Commons-logging +log4j的使用非常简单:
- 拷贝commons-logging.jar
- 拷贝log4j.jar +log4j.properties
- 无需任何其它配置,就可以在程序代码中直接使用commons-logging API了。这是因为:commons-logging会自动在classpath下检测是否有其它日志框架,如log4j等的存在,如果存在相应的jar包,则直接使用已存在的日志框架。
Commons-logging +log4j的DEMO
项目目录结构
Log4j.properties的配置如下
测试类
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LogTest {
public static void main(String[] args) {
//获取日志对象
Log logger = LogFactory.getLog(LogTest.class);
//记录日志
logger.debug("---调试信息----");
logger.info("---提示信息----");
logger.warn("---警告信息----");
logger.error("---错误信息----");
logger.fatal("---致命信息----");
}
}
主要用到了两个类
Log接口
LogFactory类
从代码中未看到具体实现的痕迹,全部都是commons-logging的API
运行结果
控制台日志信息
文件日志信息
解析:
因为log4j中只配置了rootLogger,而且是warn级别的,所以只有>=warn级别的日志才能输出,低级的被过滤掉了。所以输出的日中大家只能看到warn之后的
如果没有log4j,commons-logging将会使用JDK Logging记录日志,如下
Commons-logging的优点就在于它可以方便的更换日志的具体实现,提供通用日志记录接口。
以上就是关于commons-logging通用日志框架的简单介绍,简单但很实用。
我的下篇文章将会为大家介绍新一代通用日志框架SLF4J。