简介
说明
本文用示例介绍commons-logging的用法。也介绍相关知识。
官网
官网:Apache Commons – Apache Commons
官网下载:Apache Commons Logging - Download Apache Commons Logging
commons-logging简介
项 | 说明 |
JCL | Jakarta Commons-logging(JCL)是apache最早提供的日志的门面接口。 |
作用 | 将一些具体的日志组件抽象为接口,实现日志操作的解耦和可插拔,让众多的日志工具有一个共同的操作方式。 |
优点 | 系统换了一个日志源后,不需要更改代码。 |
支持的日志系统 | java.util.logging,simplelog(commons-logging自带日志实现类),log4j,avalon-Logkit |
切换日志系统方法 | commons-logging.properties;是否提供相应包 |
使用jcl的框架 | Spring, SpringBoot, hibernate, Structs |
选择日志系统
按照顺序,寻找过程会在找到第一个工具时中止
1. classpath下的commons-logging.properties文件:org.apache.commons.logging.Log配置属性的值
2. 系统中属性中名叫org.apache.commons.logging.Log的值
3. 若classpath中有log4j包,则使用Log4j作为日志实现类
4. 若jdk中有java.util.Logging,则使用。(jdk1.4及之后有java.util.Logging)
5. 使用commons-logging自己提供的一个简单的日志实现类SimpleLog
org.apache.commons.logging.Log 的具体实现有如下:
---org.apache.commons.logging.impl.Jdk14Logger 使用 JDK的java.util.Logging 。
---org.apache.commons.logging.impl.Log4JLogger 使用 Log4J 。
---org.apache.commons.logging.impl.LogKitLogger 使用 avalon-Logkit 。
---org.apache.commons.logging.impl.SimpleLog common-logging 自带日志实现类。
---org.apache.commons.logging.impl.NoOpLog common-logging 自带日志实现类。它实现了 Log 接口。
其输出日志的方法中不进行任何操作。
maven依赖
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
示例
示例1:SimpleLog
java程序
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class HelloWorld {
private final static Log logger = LogFactory.getLog(HelloWorld .class);
public static void main(String[] args) {
logger.debug("DEBUG ...");
logger.info("INFO ...");
logger.error("ERROR ...");
}
}
maven依赖
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
配置文件
commons-logging.properties
org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
测试
[INFO] HelloWorld - INFO ...
[ERROR] HelloWorld - ERROR ...
示例2:log4j
java程序
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class CommonsTest {
private final static Log logger = LogFactory.getLog(CommonsTest.class);
public static void main(String[] args) {
logger.debug("DEBUG ...");
logger.info("INFO ...");
logger.error("ERROR ...");
}
}
maven依赖
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
配置文件
commons-logging.properties //本处可以不提供
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
log4j.properties
log4j.rootLogger=DEBUG,console
# 输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
# 设置输出样式
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# 日志输出信息格式为
log4j.appender.console.layout.ConversionPattern=[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)]: %m%n
测试