log4j2异步Logger
来源:互联网 发布:矢量编辑软件 编辑:程序博客网 时间:2024/06/01 08:09
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种方式任选其一即可,不要同时采用)
阅读全文
0 0
- log4j2异步Logger
- Log4j2实现异步日志
- LOG4J2 异步日志
- LOG4J2 异步日志
- 升级log4j2.x异步日志
- log4j2 HTTP请求日志异步
- log4j2 不使用配置文件,动态生成logger对象
- log4j2 不使用配置文件,动态生成logger对象
- Log4j2 使用自定义Logger, Log中打印不出类名
- log4j2 不使用配置文件,动态生成logger对象
- Log4j2使用总结(异步日志)
- log4j2日志异步打印 (3)
- 日志系列之Log4j2异步Loggers
- Log4j2
- log4j2
- log4j2
- log4j2
- log4j2
- 读《布道之道 引领团队拥抱技术创新》【思维导图版】
- 没有u盘和光盘如何装win7系统?
- CRC校验原理
- 用训练好的caffe model测试新的图片
- 《Android那些事》——Demo浅析Service
- log4j2异步Logger
- 数据库实验二( 数据查询 )
- 数据结构---先序遍历
- chisel入门踩坑
- SQLite加密
- 超级淘背后的秘密,发家致富不是梦
- 【Linux】 JDK安装及配置 (tar.gz版)
- [Python]Numpy安装及一些玄学问题(is not a supported wheel on this platform、Undefined variable from import)
- Android DataBinding使用总结(二)