源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

log4j2异步Logger(详解)

  • 时间:2020-09-30 06:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:log4j2异步Logger(详解)
[b]1 异步Logger的意义[/b] 之前的日志框架基本都实现了AsyncAppender,被证明对性能的提升作用非常明显。 在log4j2日志框架中,增加了对Logger的异步实现。那么这一步的解耦,意义何在呢? [img]http://files.jb51.net/file_images/article/201710/20171020101612.jpg[/img] 如图,按我目前的理解:异步Logger是让业务逻辑把日志信息放入Disruptor队列后可以直接返回(无需等待“挂载的各个Appender”都取走数据) 优点:更高吞吐、调用log方法更低的延迟。 缺点:异常处理麻烦、 可变日志消息问题、更大的CPU开销、需要等待“最慢的Appender”消费完成。 异步Logger会使用Disruptor做高吞吐队列,异步Appender会使用ArrayBlockingQueue做队列。 异步Logger与异步Appender都可以设置“队列满了之后的策略”,我个人建议都设置为“按日志级别部分丢弃”。 [b]2 启用[/b] [b]1,全局启用异步Logger方案一[/b] JVM启动参数(boot.ini)加上“-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector” [b]2,全局启用异步Logger方案二[/b] classpath中添加文件“log4j2.component.properties”,文件增加以下内容: “Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector” [b]3,手工指定部分Logger采用异步方式[/b] log4j2.xml配置文件中使用AsyncRoot/AsyncLogger替代Root/Logger [b](上述3种方式任选其一即可,不要同时采用) [/b] 以上这篇log4j2异步Logger(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部