`

logback与Log4J的区别

    博客分类:
  • java
阅读更多

Logback和log4j是非常相似的,如果你对log4j很熟悉,那对logback很快就会得心应手。下面列了logback相对于log4j的一些优点:

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

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

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

非常充分的文档
官方网站有两百多页的文档。

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

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

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

配置文件可以处理不同的情况
开发人员经常需要判断不同的Logback配置文件在不同的环境下(开发,测试,生产)。而这些配置文件仅仅只有一些很小的不同,可以通过,和来实现,这样一个配置文件就可以适应多个环境。

Filters(过滤器)
有些时候,需要诊断一个问题,需要打出日志。在log4j,只有降低日志级别,不过这样会打出大量的日志,会影响应用性能。在Logback,你可以继续保持那个日志级别而除掉某种特殊情况,如alice这个用户登录,她的日志将打在DEBUG级别而其他用户可以继续打在WARN级别。要实现这个功能只需加4行XML配置。可以参考MDCFIlter

SiftingAppender(一个非常多功能的Appender)
它可以用来分割日志文件根据任何一个给定的运行参数。如,SiftingAppender能够区别日志事件跟进用户的Session,然后每个用户会有一个日志文件。

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

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

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

总之,logback比log4j太优秀了,让我们的应用全部建立logback上吧

原文:http://logback.qos.ch/reasonsToSwitch.html

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lwzcjd/archive/2010/05/23/5617200.aspx

分享到:
评论

相关推荐

    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软件基金会开发的一个流行的日志记录框架,它允许...

    Log4j2简介及与Log4j效率对比

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

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

    4. SLF4J集成:Logback是SLF4J(Simple Logging Facade for Java)的默认实现,允许使用相同的API与不同的日志框架进行切换。 要将Log4j替换为Logback,主要涉及以下步骤: 1. 移除Log4j相关依赖:从项目的`pom....

    log4j logback slf4j

    SLF4J的API设计简洁,使用方便,只需导入对应的绑定库(如slf4j-log4j12),即可实现与具体日志框架的对接。 **Logback** Logback是由Log4j的创始人Ceki Gülcü开发的新一代日志框架,它是对Log4j的升级和改进。...

    十个 log4j 转移到LogBack的理由

    LogBack 是一个日志框架,它是 Log4j 的后继者,由 Log4j 的创始人 Ceki Gülcü 与 Sébastien Pennec 共同创建。本文将探讨十个理由,解释为什么你应该从 log4j 迁移到 LogBack。 1. **性能提升**:LogBack 在...

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

    logback-slf4j还可以与lombok结合使用,通过使用lombok的 `@slf4j` 注解,可以方便地输出日志。 logback-slf4j日志配置文件提供了一种灵活、可靠的日志记录解决方案,能够满足不同的日志记录需求。

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

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

    基于logback和log4j2日志系统的fast-log研发级日志设计源码

    该项目是一款针对研发级日志排查的fast-log工具,采用logback和log4j2日志收集机制,源码包含109个文件,涵盖55个Java源文件、18个JavaScript文件、13个CSS样式文件、5个XML配置文件、4个Map文件、3个HTML文件、1个...

    logback+self4j 进行日志记录

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

    log4j 和 logback配置资源

    学习和掌握Log4j与Logback,不仅可以提升日志处理的效率,还可以帮助开发者编写更健壮、可维护的代码。对于初学者,理解它们的基本配置和使用方法至关重要,而深入探究高级特性,如异步日志记录、自定义过滤器和输出...

    Mybatis日志Log4j与Logback.pdf

    **Log4j与Logback的区别和发展历史**: - Log4j是较早的Java日志框架,拥有较长的历史,但随着技术进步,其1.x版本逐渐过时。 - Logback由Log4j的创始人创建,旨在解决Log4j的性能和并发问题,提供更好的性能和稳定...

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

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

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

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

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

    SLF4J可以与Log4j结合使用,允许代码兼容旧的日志框架,同时享受SLF4J的抽象优势。 **日志配置** 在"Logback 实例,log4,slf4,logback日志输出 demo"中,我们可以看到如何配置这些日志框架来控制日志的输出。配置...

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

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

    log4j-1.2.15.jar

    1. **稳定性与兼容性**:Log4j 1.2.15是一个稳定版本,修复了前一版本中的多个已知问题,确保了与其他系统的良好兼容性。 2. **配置灵活性**:通过配置文件(通常为log4j.properties或log4j.xml),开发者可以灵活...

    slf4j与Log4j集成

    SLF4J是一个日志API的抽象层,它的设计目标是为各种日志框架提供一个统一的接口,如Logback、Log4j等。这样,开发者可以在项目开发阶段使用SLF4J,而在部署时根据实际需求选择具体的日志实现。 SLF4J的核心在于提供...

    tomcat9 slf4j+log4j2 写日志.zip

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

    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