标签:如何 param object pre event gevent build 使用 事件
与 log4j2用asyncRoot配置异步日志是如何使用disruptor差异有几个:
此处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
实例。该对象封装了日志输出的执行动作等。
thread factory的名字是"AsyncLogger[" + contextName + "]"
此处用RingBufferLogEventHandler,对接RingBufferLogEvent实例处理日志写出。
此处用RingBufferLogEventTranslator,对接RingBufferLogEvent实例组装日志信息。
封装了一个叫tryPublish的方法进入队列。
log4j2用Log4jContextSelector启动参数配置全局异步日志是如何使用disruptor
标签:如何 param object pre event gevent build 使用 事件
原文地址:https://www.cnblogs.com/simoncook/p/10990266.html