Ответ 1
Правда, они достигают почти той же цели, поэтому я могу понять ваш вопрос: "почему есть оба варианта"?
Для фона AsyncAppender был в Log4j2 с самого начала, где Async Loggers были добавлены в марте прошлого года (2014). То, как сложилась нынешняя ситуация.
Команда log4j серьезно не рассматривает возможность удаления AsyncAppender на данный момент. Следует иметь в виду, что Async Loggers имеет внешнюю зависимость (LMAX disruptor jar), где AsyncAppender работает только с банками log4j2-api и log4j2.
Чтобы ответить на ваш последний вопрос, можно комбинировать AsyncAppender с Async Loggers, но вы ничего не получите. Это не было проверено. Я не проверял, но возможно, что проблема с информацией о местоположении теряется при передаче события журнала из потока Async Logger в поток AsyncAppender. Я бы не рекомендовал это делать.
UPDATE (2014/6/23): Я провел некоторое тестирование, и было несколько проблем с объединением AsyncAppender с AsyncLoggers. Они фиксируются в RC2. Я по-прежнему не рекомендую это делать, поскольку он просто добавляет еще один промежуточный шаг, который использует процессор/память, не внося ничего.
UPDATE (2016/7/20): Еще одно отличие: начиная с версии 2.6, Log4j 2 может быть без мусора с Async Loggers, но не с AsyncAppender.
В ответ на ваш второй вопрос в комментариях ниже: AsyncAppender имеет свою собственную очередь и поток, где AsyncLoggers используют кольцевой буфера LMAX Disruptor для очереди и использует поток Executor.