`

logback取代log4j的理由

 
阅读更多

首先来说:logback和log4j非常的相似。如果你对log4j很熟,那么你对logback也会得心应手。

 

闲话少说,来看看到底有哪些理由:

 

1、更快的实现。logback对内核进行了重写,在许多关特定环境中性能提升了10倍。而且logback不仅性能提升了,并且在保证初始化速度的同时,内存加载也更小了。

 

2、更加充分的测试。logback经过了几年,数不清的小时测试。尽管log4j也进行过测试,但与logback相比,完全不在同一级别。这个应该是选择logback最重要的原因。

 

3、logback-classic很自然地实现了SLF4Jlogback-classic中的登陆类自然的实现了SLF4J。当你使用logback-classic作为底层实现时,涉及到LF4J日记系统的问题你完全不需要考虑。更进一步来说,由于 logback-classic强烈建议使用SLF4J作为客户端日记系统实现,如果需要切换到log4j或者其他,你只需要替换一个jar包即可,不需要去改变那些通过

 

4、完备的文档。官网的数百页的文档。这足可让你找到你想找的任何资料。

 

5、自动重新加载配置文件。当配置文件修改了,logback-classic能自动重新加载配置文件。扫描过程快且安全,它并不需要创建一个扫描线程。这个技术充分保证了应用程序能跑得很欢在J2EE环境里面。

 

6、Lilith  lilith是log事件的观察者,和log4j的chainsaw类似。而lilith还能处理大数量的log数据。

 

7、谨慎的模式和非常友好的恢复。在谨慎模式下,多个FileAppender实例跨在多个JVM下,能够安全地写道同一个日志文件。RolingFileAppender会有一些限制。Logback的FileAppender和它的子类包括RollingFileAppender能够非常友好地从I/O异常中恢复。

 

8、配置文件可以处理不同的情况。开发人员经常需要判断不同的logback配置文件在不同的环境下(开发,测试,生产)。而这些配置文件仅仅只有一些很小的不同,可以通过logback的条件判断<if>,<then>和<else>,这样就可以适应多个环境了。

 

9、过滤能力Logback拥有远比log4j更丰富的过滤能力。例如,让我们假设,有一个相当重要的商业应用部署在生产环境。考虑到大量的交易数据需要处理,记录级别被设置为WARN,那么只有警告和错误信息才会被记录。现在,想象一下,你在开发环境遇到了一个臭虫,但是在测试平台中却很难发现,因为一些环境之间(生产环境/测试环境)的未知差异。

使用log4j,你只能选择在生产系统中降低记录的级别到DEBUG,来尝试发现问题。但是很不幸,这会生成大量的日志记录,让分析变得困难。更重要的是,多余的日志记录会影响到生产环境的性能。

使用logback,你可以选择保留只所有用户的WARN级别的日志,而除了某个用户,例如Alice,而她就是问题的相关用户。当Alice登录系统,她就会以DEBUG级别被记录,而其他用户仍然是以WARN级别来记录日志。这个功能,可以通过在配置文件的XML中添加4行。请在官网中中查找MDCFilter

 

10、多功能的Appender(SifftingAppender)SiftingAppender是一个全能的追加器。它可以基于任何给定的实时属性分开(或者筛选)日志。例如,SiftingAppender可以基于用户会话分开日志事件,这样,可以为每一个用户建立一个独立的日志文件。

 

11、自动压缩已经打出来的logRollingFileAppender在产生新文件的时候,会自动压缩已经打出来的日志文件。压缩是个异步过程,所以甚至对于大的日志文件,在压缩过程中应用不会受任何影响。

 

12、堆栈树带有包版本Logback在打出堆栈树日志时,会带上包的数据。

 

13、自动去除旧的日志文件通过设置TimeBasedRollingPolicy或者SizeAndTimeBasedFNATP的maxHistory属性,你可以控制已经产生日志文件的最大数量。如果设置maxHistory 12,那那些log文件超过12个月的都会被自动移除。

 

 logback的官方网站: http://logback.qos.ch

 SLF4J的官方网站:http://www.slf4j.org

 

 

出自:http://www.cnblogs.com/yuanermen/archive/2012/02/13/2348942.html

分享到:
评论

相关推荐

    slf4j+logback 于log4j+commons-logging大PK

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

    日志 log4j-slf4j+logback1.3.0

    本文将深入探讨“日志4j(Log4j)、SLF4J(Simple Logging Facade for Java)和logback 1.3.0”这三者之间的关系以及它们在Java应用中的作用。 首先,Log4j是Apache软件基金会开发的一个流行的日志记录框架,它允许...

    如何将应用的log4j替换成logback详解

    `logback-classic`是Logback的用户接口,`logback-core`是其核心库,而`log4j-over-slf4j`则允许将Log4j的日志调用桥接到SLF4J。 ```xml &lt;!-- logback日志配置开始 --&gt; &lt;groupId&gt;ch.qos.logback &lt;artifactId&gt;...

    十个 log4j 转移到LogBack的理由

    本文将探讨十个理由,解释为什么你应该从 log4j 迁移到 LogBack。 1. **性能提升**:LogBack 在设计时考虑了性能优化,比 log4j 更快、更小巧,同时提供更高的效率,这意味着它能以更低的资源消耗提供更好的日志...

    log4j logback slf4j

    本文将深入探讨三个重要的Java日志框架——Log4j、Logback和SLF4J,并分析它们之间的关系和使用场景。 **Log4j** Log4j是Apache组织的一个开源项目,是Java世界中最先广泛使用的日志记录框架之一。它的核心功能...

    logback-slf4j日志配置文件-下载即可使用

    "logback-slf4j日志配置文件下载即可使用" logback-slf4j是Java领域中一种常用的日志记录解决方案,它通过结合slf4j(Simple Logging Facade for Java)来提供了异步日志输出的功能,能够将日志输出到不同的文件中...

    logback+self4j 进行日志记录

    **SLF4J 是一个日志门面,它为各种日志框架提供了统一的接口,如Log4j、Logback等。这样做的好处是,开发者可以在不修改代码的情况下更换底层的日志实现,只需改变依赖即可。** **Logback 是 SLF4J 的默认实现,由 ...

    springmvc log4j2 logback 注解 jackson 日志脱敏实现源码

    本资源包含的是关于`SpringMVC`、`Log4j2`、`Logback`以及`Jackson`的日志脱敏实现源码,提供了多种实现方式,旨在帮助开发者在保障信息安全的同时,充分利用日志进行系统分析。 1. **基于正则表达式的日志脱敏实现...

    Log4j2简介及与Log4j效率对比

    与Log4j 1.x相比,Log4j2在设计上进行了重大改进,并解决了Logback等其他日志框架中存在的某些体系结构问题。 #### 特性概述 1. **审计功能**:Log4j2设计时考虑到了审计需求,这意味着即使在配置更新过程中,它也...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    SLF4J是一个抽象层,为各种日志框架提供了统一的API,如Logback、Log4j等。它的主要优点在于可以让你在不修改代码的情况下更换底层的日志框架,只需改变类路径上的绑定即可。SLF4J提供了丰富的日志级别,如DEBUG、...

    log4j 和 logback配置资源

    Logback分为三个组件:logback-classic(实现了SLF4J接口,兼容log4j API)、logback-core(提供基础架构)和logback-access(用于Servlet环境)。Logback的配置同样通过XML文件完成,其配置灵活性更高,例如支持...

    SpringBoot框架配置log4j和log4j2的配置代码

    SpringBoot默认使用的是Logback,但通过简单的配置,我们也可以切换到Log4j。 #### 配置Log4j 1. **添加依赖**:首先,在`pom.xml`文件中,添加Log4j的依赖。 ```xml &lt;groupId&gt;org.springframework.boot ...

    Logback 实例,log4,slf4,logback日志输出 demo

    Logback、log4j 和 SLF4J(Simple Logging Facade for Java)是Java世界中广泛使用的日志框架,它们提供了高效且灵活的日志处理能力。 **SLF4J:简单日志门面** SLF4J是一个日志抽象层,它为各种日志实现(如...

    10 reasons to use logback !------log4j他爹告诉你为何要使用新的日志包logback

    标题中的“10 reasons to use logback”是一个讨论日志框架选择的主题,它提出了使用logback而非其他日志工具(如log4j)的十个理由。logback是log4j的作者Ceki Gülcü创建的一个更现代、性能更优的日志框架。在...

    Mybatis日志Log4j与Logback.pdf

    Mybatis日志系统涉及到两种主要的日志框架:Log4j和Logback。Log4j是早期流行的Java日志记录框架,但随着技术的发展,它的1.x版本在性能和并发性方面逐渐暴露出一些局限性,并且已经不再维护。Logback是Log4j的创始...

    log4j-1.2.15.jar

    《深入理解Log4j 1.2.15.jar:日志管理的基石》 在IT行业中,日志管理是一项至关重要的任务,它对于系统监控、故障排查以及性能优化起着不可忽视的作用。Log4j作为Java平台上的一个经典日志记录框架,因其强大的...

    tomcat9 slf4j+log4j2 写日志.zip

    首先,SLF4J是一个日志门面,它为各种日志框架提供了抽象层,如Logback或Log4j。它的主要优点是允许用户在部署时选择适合自己的日志实现,而无需修改代码。SLF4J通过提供一个统一的API,使得更换日志框架变得非常...

    log4j示例项目

    除了基本的日志功能,Log4j还支持与其他日志框架(如Logback)的互操作,以及与Spring等框架的集成,提供更强大的日志管理和监控能力。 通过这个"log4j示例项目",我们可以亲手实践这些概念,更好地理解和运用Log4j...

    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案.docx

    Log4j2是Log4j的升级版本,它基于LMAX Disruptor的异步日志在多线程环境下性能远远优于Log4j 1.x和logback。 本文将详细介绍如何使用Slf4j集成Log4j2构建项目日志系统的完美解决方案。 背景: 随着项目的发展,对...

    logback 1.2.6 和 slf4j 1.7.32

    Logback分为三个主要组件:`ch.qos.logback.core`(核心部分)、`ch.qos.logback.classic`(提供与Log4j兼容的API)和`ch.qos.logback.access`(用于Servlet容器的日志记录)。 **Logback 1.2.6更新** Logback ...

Global site tag (gtag.js) - Google Analytics