`

commons-logging log4j org.slf4

    博客分类:
  • log
log 
阅读更多

 

commons-logging log4j org.slf4

日志介绍

 

日志工具

 

Log4j

Apache的一个开放源代码项目,通过使用Log4j,我们可以:

日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;

 

也可以控制每一条日志的输出格式;

 

定义每一条日志信息的级别,用户能够更加细致地控制日志的生成过程。这些可以通过一个 配置文件来灵活地进行配置,而不需要修改程序代码。


 LOGBack 

Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core, logback-classiclogback-accesslogback-core是其它两个模块的基础模块。logback-classiclog4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日记系统如log4jJDK14 Logging。另外logback的整体性能比log4j也较佳,hibernate等项目已经采用了slf4j

 

Log4J vs. LOGBack

LOGBack作为一个通用可靠、快速灵活的日志框架,将作为Log4j的替代和SLF4J组成新的日志系统的完整实现。相对于Log4JLOGBack的优点如下:
快的实现 

Logback的内核重写了,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小了。

 

充分的测试 

Logback经过了几年,数不清小时的测试。Logback的测试完全不同级别的。在作者的观点,这是简单重要的原因选择logback而不是

 

Logback-classic非常自然实现了SLF4j   

Logback-classic实现了 SLF4j。在使用SLF4j中,你都感觉不到logback-classic。而且因为logback-classic非常自然地实现了SLF4J  以切换到log4j或者其他,非常容易,只需要提供成另一个jar包就OK,根本不需要去动那些通过SLF4JAPI实现的

 

充分的文档 

官方网站有两百多页的文档。

 

 

 

日志门面(Facade)

日志门面:为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。

SLF4J 

实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。

下图为SLF4J调用底层Logging的一个整体说明:

 


Apache Common-Logging

目前广泛使用的Java日志门面库。通过动态查找的机制,在程序运行时自动找出真正使用的日志库。是各种日志实现的通用入口,会根据classpath中存在下面哪一个Jar来决定具体的日志实现库。


SLF4J vs. Apache Common-Logging

SLF4J库类似于Apache Common-Logging。但是,他在编译时静态绑定真正的Log库。使用SLF4J时,如果你需要使用某一种日志实现,那么你必须选择正确的SLF4Jjar包的集合。

 Common-Logging通过动态查找的机制,使用ClassLoader寻找和载入底层的日志库。

另外,SLF4J 支持参数化的log字符串,避免了之前为了减少字符串拼接的性能损耗而不得不写的if(logger.isDebugEnable()),现在你可以直接写:logger.debug(“current user is: {}”, user)。拼装消息被推迟到了它能够确定是不是要显示这条消息的时候,但是获取参数的代价并没有幸免。同时,日志中的参数若超过三个,则需要将参数以数组的形式传入,如:

 

Object[] params = {value1, value2, value3};
logger.debug(“first value: {}, second value: {} and third value: {}.”, params);
 

 

 

二、使用的所有jar文件

1)    log4j-1.2.15.jar 这是log4j的库。 SLF4J并不改变这个底层实现库。

 

2)    slf4j-api-1.5.2.jar 这是SLF4J库。 

 

3)    logback-classic-0.9.29.jarlogback-core-0.9.29.jar 这是logback的库。


三、     如何使用

 

广泛使用的方案

 commons-logging + log4j

这是应用最广泛的日志方案,大部分开源软件都采用了这种方式。使用此方案只需引入commons-logginglog4j两个jar包,并提供log4j.xmllog4j.properties配置文件即可。代码如下:

 

1) private static final Log log = LogFactory.getLog(LogTest.class); //推荐使用这种方式
2)private static final Logger log = Logger.getLogger(LogTest. class); // 使用这种方式其实只需要引入log4j包即可
 

 


高性能的方案

slf4j + logback

此方案性能高,使用灵活方便,可使用默认配置文件,也可以通过加载指定的配置文件。使用此方案需要引入slf4j, logback-corelogback-classic三个jar包,提供logback.xml。代码如下:

 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(LogTest. class);
 

 


使用slf4j+logback的优势:

l  支持按文件大小或基于时间的切分方式,可自定义命名

l  文件打包(触发器方式)

l  支持OSGI环境

如果在单纯的logging环境中,使用SLF4J意义不大。如果想在各种logger API中切换,SELF4J是理想选择,另外在新的项目中,使用SLF4J+Logback是比较好的日志框架选型。

 

分享到:
评论

相关推荐

    commons-logging-1.2.1.1.jar

    此外,虽然Commons Logging提供了一种抽象的日志解决方案,但随着日志框架的不断发展,一些现代的替代品如SLF4J(Simple Logging Facade for Java)和Logback应运而生。SLF4J提供了一个更简洁的API,并且设计上更...

    commons-modeler-XXX.jar、commons-logging-XXX.jar

    Apache Commons Logging是另一个关键的Java库,它提供了一个统一的日志接口,让开发者可以轻松地切换不同的日志实现,如Log4j、Java内置的java.util.logging或Simple Logging Facade for Java (SLF4J)。这个库的主要...

    commons-logging-1.1.1.jar.zip

    在实际应用中,`commons-logging-1.1.1.jar`的使用通常需要配合具体的日志实现库一起,比如Log4j或SLF4J。这可以通过设置`commons-logging.properties`配置文件,或者通过系统属性`java.util.logging.config.file`来...

    commons-logging-1.1.3-bin.tar.gz

    默认情况下,它会尝试查找系统属性`org.apache.commons.logging.Log`来确定日志实现,如果找不到,它会按顺序尝试使用Jakarta Commons Logging(JCL),Log4j,Java内置的日志系统等。用户可以通过设置系统属性或...

    hibernate使用的commons-logging-1.1.3.jar包

    在实际开发中,为了规避潜在的问题,有的开发者选择使用其他的日志框架,如SLF4J(Simple Logging Facade for Java),它同样提供了一个抽象层,但比`commons-logging`更现代,且有更明确的绑定机制。 总的来说,`...

    jcl-over-slf4j-1.6.0.jar logbank转log4j 日志转换 使用场景 实例

    在Java世界里,我们常常会遇到多种日志框架并存的情况,比如Jakarta Commons Logging(JCL)和Log4j。本文将详细介绍如何使用`jcl-over-slf4j-1.6.0.jar`这个桥接包,实现从JCL到SLF4J的日志系统转换,并探讨其实际...

    spring-framework-4.3.6.RELEASE-dist和commons-logging-1.2-bin.zip

    Commons Logging 1.2 是一个轻量级的日志接口,它不提供日志实现,而是作为一个桥梁,让应用程序能够在运行时选择和切换底层的日志实现,如Log4j、java.util.logging或Apache Log4j 2。以下是关于Commons Logging的...

    commons-logging-1.2

    Commons Logging 是 Apache 组织提供的一款轻量级的日志记录工具库,它的主要目标是为 Java 开发者提供一个简单的接口来使用各种日志框架,如 Log4j、Java Util Logging(JUL)或者 Simple Logging Facade for Java...

    commons-logging-1.2.jar commons-vfs-2.2.jar

    Apache Commons Logging是一个轻量级的日志记录API,它允许开发者选择在运行时使用他们所偏好的日志框架,如Log4j、java.util.logging或Simple Logging Facade for Java (SLF4J)等。它的主要作用是提供一个统一的...

    commons-logging-1.2.zip

    3. 集成SLF4J:虽然SLF4J本身是一个接口,但可以通过桥接器(如slf4j-jdk14.jar或slf4j-log4j12.jar)将SLF4J与Commons Logging连接起来。 五、优缺点分析 优点: - 提供了日志接口的统一,简化了代码。 - 动态...

    dbeaver-driver-all-master.zip

    slf4j-api-1.7.21.jar csvjdbc-1.0.35.jar csvjdbc-1.0.37.jar dans-dbf-lib-1.0.0-beta-10.jar db2jcc4.jar jt400.jar derby-10.15.1.3.jar derbyclient-10.15.1.3.jar derbyshared-10.15.1.3.jar derbytools-10.15...

    slf4j最新jar包下载和jar包

    SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它提供了一个接口,允许用户在运行时动态地绑定到各种具体的日志框架,如Log4j、Java内置的日志或者Logback等。这个设计使得开发者可以在不修改...

    commons-logging-1.2.jar

    然而,从Spring 4.x版本开始,Spring逐渐转向使用SLF4J(Simple Logging Facade for Java)作为首选的日志抽象层,但仍然保持对Commons Logging的兼容性,以照顾老版本的用户。 在实际使用时,为了配置Commons ...

    commons-codec-1.4.jar commons-httpclient.jar commons-logging-1.0.4(1).jar

    Commons Logging是一个日志抽象层,允许开发者在不修改代码的情况下切换不同的日志实现,如Log4j、Java内置的日志API(java.util.logging)或Commons Logging自己的简单实现。通过这个库,你可以避免与特定日志框架...

    commons-logging-1.1.3.rar

    通过 Commons Logging,你可以方便地切换日志实现,如Log4j、java.util.logging (JUL) 或者 Simple Logging Facade for Java (SLF4J)。这样,如果你需要更换日志框架,只需要更改配置,而不需要修改代码。 在...

    commons-httpclient.jar,commons-codec.jar,commons-logging.jar

    最后,`commons-logging.jar`是Apache Commons Logging库,它是一个轻量级的日志接口抽象层,允许开发者选择底层的日志实现,如Log4j、Java内置日志或者SLF4J等。通过使用Commons Logging,开发者可以轻松地更换日志...

    hibernate-release-5.0.7.Final.zip

    hibernate-release-5.0.7.Final压缩包 -document ...3.18.1-GA.jar jboss-logging-3.3.0.Final.jar log4j-1.2.16.jar mysql-connector-java-5.1.7-bin.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.7.2.jar

    jcl-over-slf4j-1.7.25.jar 由于下载次数较多,所需积分上去了,我已下调

    举个例子:如果一个程序希望用 log4j 日志工具,那么程序只需针对 slf4j-api 接口编程,然后在打包时再放入 slf4j-log4j12-version.jar 和 log4j.jar 就可以了。 现在还有一个问题,假如你正在开发应用程序所调用...

    slf4j+logback 于log4j+commons-logging大PK

    今天我们将聚焦两个流行的日志框架——SLF4J(Simple Logging Facade for Java)和Logback,以及它们与Log4j和Commons-Logging的对比。 SLF4J是一个接口层的日志框架,它提供一个统一的API,允许用户在运行时插入...

    commons-logging-1.1.1.jar开发架包

    Commons Logging是Apache软件基金会开发的一个Java日志抽象层,它为各种日志框架提供了一个统一的接口,如Log4j、java.util.logging (JUL) 和Simple Logging Facade for Java (SLF4J)。标题提到的"commons-logging-...

Global site tag (gtag.js) - Google Analytics