今天看 spring api , spring 建议采用SLF4J而不是Commons Logging,原因如下:
SLF4J is a cleaner dependency and more efficient at runtime than commons-logging because it uses compile-time bindings instead of runtime discovery of the other logging frameworks it integrates
我理解为:SLF4J采用的策率是编译时绑定,而commons-logging 采用的是运行时查找的算法.所以采用SLF4j会使写出来的代码效率更高,原来对日志系统一直没怎么在意,没想到还有这些说法啊.
原来写代码的时候总是发现有一个commons-logging.jar的依赖,
现在直接移除了,maven依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.0.RELEASE</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.5.8</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.8</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>runtime</scope>
</dependency>
</dependencies>
分享到:
相关推荐
SLF4J(Simple Logging Facade for Java)和Apache Commons Logging是两个在Java开发中广泛使用的日志框架。它们提供了一种抽象层,允许开发者在不修改代码的情况下切换不同的日志实现,如Log4j、Java Util Logging ...
这个库提供了一个API,开发者可以使用这个API来记录日志,而无需关心底层的日志系统是log4j、java.util.logging还是其他。然而,commons-logging自身并不提供具体的日志实现,而是作为一个接口,让开发者能够根据...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它提供了一个接口,允许用户在运行时动态地绑定到各种具体的日志框架,如Log4j、Java内置的日志或者Logback等。这个设计使得开发者可以在不修改...
这个“commons-logging-1.1.1”是该库的一个版本,它提供了对多种日志系统(如log4j、java.util.logging、JDK1.4 logging等)的统一接口。 1. **Java 日志接口**:Commons Logging 提供了一个简单的API,用于记录...
Commons Logging 是 Apache 组织提供的一款轻量级的日志记录工具库,它的主要目标是为 Java 开发者提供一个简单的接口来使用各种日志框架,如 Log4j、Java Util Logging(JUL)或者 Simple Logging Facade for Java...
今天我们将聚焦两个流行的日志框架——SLF4J(Simple Logging Facade for Java)和Logback,以及它们与Log4j和Commons-Logging的对比。 SLF4J是一个接口层的日志框架,它提供一个统一的API,允许用户在运行时插入...
- **其他绑定**:SLF4J还支持其他日志系统,如log4j-over-slf4j.jar(Log4j到SLF4J的桥接)、jcl-over-slf4j.jar(Jakarta Commons Logging到SLF4J的桥接)等。 3. **SLF4J的优势** - **灵活性**:SLF4J允许在不...
通过这个接口,开发者可以使用各种底层日志框架,如 Log4j, java.util.logging (JUL) 或者 Simple Logging Facade for Java (SLF4J)。 2. **自动配置**: Commons Logging 会尝试自动检测并使用可用的日志实现。这...
Apache Commons Logging(简称Commons Logging)是Apache软件基金会开发的一个日志接口库,它提供了一个统一的日志API,允许开发者选择底层的日志实现,如Log4j、Java内置的日志系统或者其他的第三方日志库。...
5. **slf4j-jdk14.jar**:这个适配器将SLF4J的日志调用转发给Java内置的日志系统(java.util.logging)。 6. **logback-classic.jar** 和 **logback-core.jar**:这两个是Logback的日志实现,Logback是SLF4J的推荐...
这个压缩包提供的日志组件可以帮助开发者构建一个强大而灵活的日志系统,可以根据项目的具体需求选择合适的方式进行日志管理,无论是直接使用log4j,还是通过Commons Logging或SLF4J进行抽象,都能有效地提升代码的...
3. 适应性:由于Commons Logging的这种设计,使得它能够适应各种日志系统,包括Log4j、JUL、SLF4J等,为开发者提供了极大的灵活性。 二、Commons Logging的关键类和接口 1. `org.apache.commons.logging.Log`:这...
例如,引入 SLF4J 的桥接器 `slf4j-jcl`,这样 Commons Logging 的调用会被转发到 SLF4J,从而利用 SLF4J 提供的更丰富的功能和更好的性能。 总之,“commons-logging-1.1.zip” 包含了 Commons Logging 的一个版本...
Apache Commons Logging提供了一个抽象层,允许开发者选择底层的日志实现,如Log4j、Java内置的日志系统或者SLF4J等。通过简单的API调用,我们可以在不修改代码的情况下切换不同的日志框架: ```java Log log = ...
它不实现任何具体的日志功能,而是作为一个适配器,允许开发者选择或切换底层的日志实现,如Log4j、Java内置的日志(java.util.logging)或者SLF4J等。这样做的好处在于,开发者可以在不修改代码的情况下,根据项目...
"commons-logging-1.1"是这个库的一个版本,它包含了一组API,使得应用程序能够以统一的方式处理日志记录,无论底层的日志系统是Log4j、Java内置的日志(java.util.logging)还是其他第三方日志库。 这个资源包...
Commons Logging通过提供一个抽象层,允许开发者使用简单的API来记录日志,而具体的日志实现(如Log4j、Java Util Logging或SLF4J)可以根据项目需求或者环境配置进行选择和切换。 Commons Logging的核心概念包括...
3. **slf4j-jdk14.jar**:这个绑定包用于将SLF4J与Java内置的日志系统(java.util.logging)连接起来。如果你希望使用Java内置的日志框架,可以引入此jar。 4. **slf4j-nop.jar**:这个实现包用于禁用日志,即不...
Commons Logging的核心思想是解耦应用代码和日志实现。在开发过程中,开发者只需要与Commons Logging API交互,而具体的日志实现可以根据环境或配置进行动态切换。这样,开发者可以专注于编写业务逻辑,而不用关心...