log4j2异步Logger(详解)

 更新时间:2017年10月20日 10:15:46   作者:和大黄  
下面小编就为大家带来一篇log4j2异步Logger(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1 异步Logger的意义

之前的日志框架基本都实现了AsyncAppender,被证明对性能的提升作用非常明显。

在log4j2日志框架中,增加了对Logger的异步实现。那么这一步的解耦,意义何在呢?

如图,按我目前的理解:异步Logger是让业务逻辑把日志信息放入Disruptor队列后可以直接返回(无需等待“挂载的各个Appender”都取走数据)

优点:更高吞吐、调用log方法更低的延迟。

缺点:异常处理麻烦、 可变日志消息问题、更大的CPU开销、需要等待“最慢的Appender”消费完成。

异步Logger会使用Disruptor做高吞吐队列,异步Appender会使用ArrayBlockingQueue做队列。

异步Logger与异步Appender都可以设置“队列满了之后的策略”,我个人建议都设置为“按日志级别部分丢弃”。

2 启用

1,全局启用异步Logger方案一

JVM启动参数(boot.ini)加上“-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector”

2,全局启用异步Logger方案二

classpath中添加文件“log4j2.component.properties”,文件增加以下内容:

“Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector”

3,手工指定部分Logger采用异步方式

log4j2.xml配置文件中使用AsyncRoot/AsyncLogger替代Root/Logger

(上述3种方式任选其一即可,不要同时采用)

以上这篇log4j2异步Logger(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java中@DateTimeFormat和@JsonFormat注解的使用

    java中@DateTimeFormat和@JsonFormat注解的使用

    本文主要介绍了java中@DateTimeFormat和@JsonFormat注解的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 分析JVM的组成结构

    分析JVM的组成结构

    JVM(虚拟机):指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。JVM和VMware,Virtual Box等虚拟机一样,都是运行在操作系统之上的计算机系统
    2021-06-06
  • 多线程死锁的产生以及如何避免死锁方法(详解)

    多线程死锁的产生以及如何避免死锁方法(详解)

    下面小编就为大家带来一篇多线程死锁的产生以及如何避免死锁方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Java 函数编程详细介绍

    Java 函数编程详细介绍

    这篇文章主要介绍了Java函数式编程,lambda表达式可以被认为是一个匿名函数,可以在函数接口的上下文中使用。函数接口是只指定一个抽象方法的接口,下面来看文章的详细内容,需要的朋友可以参考下
    2021-11-11
  • mybatis-plus主键策略生成失败的解决

    mybatis-plus主键策略生成失败的解决

    本文主要介绍了mybatis-plus主键策略生成失败的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • SpringBoot利用观察者模式实现联动更新机制

    SpringBoot利用观察者模式实现联动更新机制

    观察者模式(Observer Pattern)是一种软件设计模式,在许多应用系统中,我们经常需要处理多个表之间的关联更新问题,本文将通过一个具体的案例,介绍如何在Spring Boot项目中利用观察者模式来优雅地解决这一需求,需要的朋友可以参考下
    2024-07-07
  • 使用Jackson反序列化遇到的问题及解决

    使用Jackson反序列化遇到的问题及解决

    这篇文章主要介绍了使用Jackson反序列化遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java程序常见异常及处理汇总

    Java程序常见异常及处理汇总

    这篇文章主要介绍了java程序常见异常及处理汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • springCloud集成nacos config的过程

    springCloud集成nacos config的过程

    本文介绍spring cloud集成nacos config的过程,通过实例代码图文相结合给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • Spring Boot如何在加载bean时优先选择我

    Spring Boot如何在加载bean时优先选择我

    这篇文章主要介绍了Spring Boot如何在加载bean时优先选择我,在 Spring Boot 应用程序中,我们可以采取三种方式实现自己的 bean 优先加载,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
    2023-03-03

最新评论