Doğru, neredeyse aynı amaca ulaşıyorlar, bu yüzden sorunuzu anlayabiliyorum: "neden her iki seçenek de var"?
Arka plan için, AsyncAppender başlangıçtan Log4j2'ye girmiştir, geçen yıl Mart ayında Async Loggers eklenmiştir (2014). Mevcut durum böyle oldu.
Log4j takımı AsyncAppender'ı şu anda kaldırmayı ciddi olarak düşünmüyor. AsyncAppender'ın sadece log4j2-api ve log4j2-core kavanozlarla çalıştığı Async Loggers'ın harici bir bağımlılığa (LMAX bozucu kavanozu) sahip olması akılda tutulması gereken bir husustur.
Son sorunuzu cevaplamak için AsyncAppender'ı Async Loggers ile birleştirmek mümkündür, ancak hiçbir şey elde edemezsiniz. Bu test edilmedi. Kontrol etmedim, ancak Async Logger dizisinden AsyncAppender iş parçacığına günlük olayını teslim ederken kaybolduğunda konum bilgilerinin kaybolması ile ilgili bir sorun olabilir. Bunu yapmamanızı tavsiye etmem.
UPDATE (2014/6/23): Bazı testler yaptım ve AsyncAppender'ı AsyncLoggers ile birleştirmeyle ilgili birkaç sorun vardı. Bunlar RC2'de sabitlenmiştir. Bunu yapmamanızı tavsiye etmiyorum, çünkü hiçbir şey yapmadan CPU/bellek kullanan başka bir ara adım ekliyor.
UPDATE (2016/7/20): Başka bir fark: sürüm 2.6'dan beri, Log4j 2 Async Loggers ile çöpsüz olabilir, ancak AsyncAppender ile birlikte kullanılamaz.
aşağıdaki yorum ikinci soruya yanıt olarak
: AsyncAppender AsyncLoggers kuyrukta için LMAX engelleyici aygıtı Ringbuffer kullanın ve bir Yürüten parçacığı kullanan kendi kuyruğunu ve iplik vardır.
Teşekkürler Remko.i async logger için bozucu jar.AsyncAppender seprate thread asynclogger append yöntemini yürütmek için teşekkür ederiz.Is AsyncLogger da seprate iplik veya farklı bir şey append yöntemi uygulamak. –