简介
说明
本文用示例介绍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
测试
请先
!