log4j2用Log4jContextSelector启动参数配置全局异步日志是如何使用disruptor

log4j2用asyncRoot配置异步日志是如何使用disruptor差异有几个:

给disruptor实例的EventFactory不同

此处EventFactory采用的是RingBufferLogEvent.FACTORY,newInstance逻辑大致是:

public RingBufferLogEvent newInstance() {
    final RingBufferLogEvent result = new RingBufferLogEvent();
    if (Constants.ENABLE_THREADLOCALS) {
        result.messageText = new StringBuilder(Constants.INITIAL_REUSABLE_MESSAGE_SIZE);
        result.parameters = new Object[10];
    }
    return result;
}

创建的是 RingBufferLogEvent实例。该对象封装了日志输出的执行动作等。

给disruptor的threadFactory的参数不同

thread factory的名字是"AsyncLogger[" + contextName + "]"

给disruptor的EventHandler不同

此处用RingBufferLogEventHandler,对接RingBufferLogEvent实例处理日志写出。

给disrupto的Translator不同

此处用RingBufferLogEventTranslator,对接RingBufferLogEvent实例组装日志信息。

事件进入队列方式不同

封装了一个叫tryPublish的方法进入队列。

原文地址:https://www.cnblogs.com/simoncook/p/10990266.html

时间: 2024-10-13 10:52:05

log4j2用Log4jContextSelector启动参数配置全局异步日志是如何使用disruptor的相关文章

log4j2用asyncRoot配置异步日志是如何使用disruptor

用asyncRoot配置对应的对接disruptor类是AsyncLoggerConfigDisruptor,用Log4jContextSelector启动参数配置全局异步的对应的对接disruptor类是AsyncLoggerDisruptor.下面分析的是AsyncLoggerConfigDisruptor disruptor的创建与启动需要的部件实现 AsyncLoggerConfigDisruptor.start方法用来创建并启动disruptor实例 创建disruptor需要Even

IntellIJ IDEA 启动 参数 配置

系统环境: 型号名称: MacBook Pro型号标识符: MacBookPro11,4处理器名称: Intel Core i7处理器速度: 2.8 GHz处理器数目: 1核总数: 4L2 缓存(每个核): 256 KBL3 缓存: 6 MB内存: 16 GB 软件版本: IntelliJ IDEA 2017.2.2Build #IU-172.3757.52, built on August 15, 2017Licensed to phpdragon JRE: 1.8.0_152-release

JVM调优之Tomcat启动参数配置及详解

开发项目中会遇到Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)的问题,通过查找资料找到是通过设置Tomcat 启动堆空间大小.年轻代大小.每个线程大小参数进行调优的,具体如下: 一.在Tomcat 启动脚本(catalina.sh/catalina.bat)首行添加如下配置即可解决此问题 JAVA_OPTS="-Xms2048m -Xmx2048m -Xmn1024m -Xss1024K -XX:PermSize=128m -XX:Ma

Netbeans 8.1启动参数配置

Netbeans8.1 + JDK 1.8 etc/netbeans.conf netbeans_default_options="-J-client -J-Xss1m -J-Xms1024m -J-Xmx2560m  -J-XX:+UseParallelGC -J-Djava.net.preferIPv4Stack=true  -J-Dapple.laf.useScreenMenuBar=true   -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.

Tokyo Tyrant(TTServer)系列(二)-启动参数和配置

启动参数介绍 ttserver命令可以启动一个数据库实例.因为数据库已经实现了Tokyo Cabinet的抽象API,所以可以在启动的时候指定数据库的配置类型. 支持的数据库类型有: 内存hash数据库 内存tree数据库 hash数据库 B+ tree数据库, 命令通过下面的格式来使用,'dbname'制定数据库名,如果省略,则被视作内存hash数据库. ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pi

php-fpm 启动参数及重要配置详解

约定几个目录 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini 一,php-fpm的启动参数               (具体问题解决要更具具体目录来) 1 2 3 4 5 6 7 8 9 10 11 12 13 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/php/sbin/php-fpm -c /usr/

[转]php-fpm - 启动参数及重要配置详解

约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini 一,php-fpm的启动参数 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t #启动p

php配置php-fpm启动参数及配置详解

约定几个目录 /usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini一,php-fpm的启动参数 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t #启动p

Fitnesse启动参数与配置

Fitnesse最新版20140630默认启动后,网页风格与 fitnesse.org 的Bootstrap风格完全不一致. 需要配置plugins.properties中的Theme=bootstrap,才能启动Bootstrap风格的Fitnesse. 启动Bootstrap风格的Fitnesse 从 fitnesse.org 下载最新版20140630的fitnesse-standalone.jar后, 启动fitnesse: ? 1 D:\fitnesse\fitnesse-201406