`

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是比较好的日志框架选型。

 

分享到:
评论

相关推荐

    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...

    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 就可以了。 现在还有一个问题,假如你正在开发应用程序所调用...

    log4j-1.2.17.jar、logback-core-1.1.2.jar、slf4j-simple-1.7.12.jar等

    commons-logging-1.2.jar、log4j-1.2.17.jar、logback-classic-1.1.2.jar、logback-core-1.1.2.jar、slf4j-api-1.7.12.jar、slf4j-jcl-1.7.12.jar、slf4j-simple-1.7.12.jar

    spring和hibernate__jar包,详细说明看jar包列表

    slf4j-log4j12-1.5.8.jar spring-aop-3.1.1.RELEASE.jar spring-asm-3.1.1.RELEASE.jar spring-beans-3.1.1.RELEASE.jar spring-context-3.1.1.RELEASE.jar spring-context-support-3.1.1.RELEASE.jar spring-core-...

    开源框架jar包(百度云盘)

     · apache-log4j-1.2.15.zip  · xwork2-2.1.rar  · dom4j-1.6.1.rar  · elecfans.com-XPath.rar  · xwork-assembly-2.1.6-all.zip  · quartz-2.2.1-distribution.tar.gz  · xloadtree_zh_cn.zip  · ...

    cas-server-webapp-4.0.0单点登录(带超详细文档、数据连接jar包、c3p0)可运行

    包含(cas-server-webapp-4.0.0.war、c3p0-0.9.1.2.jar、cas-client-core-3.3.3.jar、cas-server-support-jdbc-4.0.0.jar、cas-server-webapp-support-4.0.0.jar、commons-logging-1.1.3.jar、log4j-1.2.17.jar、...

    柳峰老师微信自定义菜单所需的jar包

    包含柳峰老师微信自定义菜单所需的所有jar包,commons-beanutils.jar;commons-beanutils-1.7.0.jar;commons-collections.jar;commons-httpclient.jar;...slf4j-log4j12-1.5.10.jar;xstream-1.3.1-sae-liufeng.jar

    (2018版最新)Springmvc+Srping+Mybatis整合所需全部jar包

    jupiter-api-5.3.1.jar log4j-1.2.17.jar log4j-api-2.11.0.jar log4j-core-2.11.0.jar log4j-core-2.11.0.jar mybatis-spring-1.3.2.jar mysql-connector-java-8.0.12.jar slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5...

    hadoop-2.10.0jar.zip

    包含hadoop平台Java开发的所有所需jar包,例如activation-...slf4j-log4j12-1.7.25.jar snappy-java-1.0.5.jar stax-api-1.0-2.jar stax2-api-3.1.4.jar woodstox-core-5.0.3.jar xmlenc-0.52.jar zookeeper-3.4.9.jar

    web开发中常用的jar包

    slf4j-log4j12-1.7.2.jar spring-aop-3.2.0.RELEASE.jar spring-aspects-3.2.0.RELEASE.jar spring-beans-3.2.0.RELEASE.jar spring-context-3.2.0.RELEASE.jar spring-core-3.2.0.RELEASE.jar spring-expression-...

    java编程各种架包

    antlr-2.7.6.jar commons-collections-3.2.jar commons-dbcp.jar commons-digester-2.0... slf4j-log4j12-1.5.0.jar spring.jar struts2-core-2.2.1.jar struts2-spring-plugin-2.2.1.jar xwork-core-2.2.1.jar

    SSHjar包 .rar

    slf4j-log4j12-1.7.2.jar spring-aop-3.2.0.RELEASE.jar spring-aspects-3.2.0.RELEASE.jar spring-beans-3.2.0.RELEASE.jar spring-context-3.2.0.RELEASE.jar spring-core-3.2.0.RELEASE.jar spring-expression-...

    Slf4j日志相关jar包

    Slf4j日志相关jar包 包含log4j Slf4j jboss-logging commons-logging

    Spring4+Hibernate5+struts2需要jar包集合【附详细讲解】

    com.springsource.slf4j.org.apache.commons.logging-1.5.6.jar commons-fileupload-1.4.jar commons-io-2.6.jar commons-lang3-3.8.1.jar dom4j-2.1.1.jar FastInfoset-1.2.15.jar freemarker-2.3.28.jar hibernate...

    hibernate_jar.zip

    所有jar包:antlr-2.7.7.jar commons-beanutils-1.8.3.jar dom4j-1.6.1.jar geronimo-jta_1.1_spec-1.1.1.jar hibernate-commons-annotations-5.0.1.Final.jar hibernate-core-5.0.7.Final....slf4j-log4j12-1.7.2.jar

    ssh框架基础jar

    slf4j-log4j12-1.7.2.jar spring-aop-4.2.4.RELEASE.jar spring-aspects-4.2.4.RELEASE.jar spring-beans-4.2.4.RELEASE.jar spring-context-4.2.4.RELEASE.jar spring-core-4.2.4.RELEASE.jar spring-expression-...

    Hibernate.rar

    hibernate-release-5.0.7.Final Hibernate依赖库: antlr-2.7.7.jar dom4j-1.6.1.jar geronimo-jta_1.1_spec-1.1.1.jar hibernate-commons-annotations-5.0.1.Final.jar ...slf4j-log4j12-1.7.2.jar

    SSH2用到的jar文件集合

    antlr-2.7.2.jar asm.jar aspectjrt.jar aspectjweaver.jar cglib-2.1.jar commons-collections.jar...slf4j-log4j12-1.5.0.jar spring.jar struts2-core-2.0.14.jar struts2-spring-plugin-2.0.14.jar xwork-2.0.7.jar

    Hibernate框架jar包

    slf4j-log4j12-1.7.2.jar log4j-1.2.16.jar jboss-logging-3.3.0.Final.jar geronimo-jta_1.1_spec-1.1.1.jar junit-4.9.jar mysql-connector-java-5.1.7-bin.jar hibernate-jpa-2.1-api-1.0.0.Final.jar antlr-...

Global site tag (gtag.js) - Google Analytics