Oh wonderful, So it means to me that the difference is w.r.t the mechanism used which makes the throughput better. So for AsyncLoggers , it uses disruptor which has immense difference in performance compared to the ArrayBlockingQueue.
But when I have multiple AsyncLoggers , that is mutiple logger entries in logger tag, And I have multiple AsyncAppenders , I see that for AsnycLogger only single thread is created but for multiple AsyncAppenders multiple threads are created so which is better? -Sudharma On Thu, Oct 3, 2013 at 4:20 PM, Remko Popma <[email protected]> wrote: > You're welcome. > > Christian's blog post has more details on the difference: > http://www.javacodegeeks.com/2013/07/log4j-2-performance-close-to-insane.html > > Best regards, > Remko > > Sent from my iPhone > > On 2013/10/03, at 19:41, Sudharma Puranik <[email protected]> > wrote: > > ok, Thanks a lot for your quick reply, I actually wanted to have > asynchronous logging so I had previously done AsyncAppenders then I am > testing AsyncLoggers but frankly I am unable to understand the difference > between these. Can you please provide any blog of yours or any > explanination you have handy? > > Thanks lot for your time > > -Sudharma > > > On Thu, Oct 3, 2013 at 4:06 PM, Remko Popma <[email protected]> wrote: > >> Yes, waiting at that location means that the async logging thread is >> waiting for new work to arrive. Assuming log events are appearing in the >> log file correctly, I don't see any issue. >> >> Best regards, >> Remko >> >> Sent from my iPhone >> >> On 2013/10/03, at 19:28, Sudharma Puranik <[email protected]> >> wrote: >> >> This is the dump log >> >> >> "AsyncLogger-1" daemon prio=6 tid=0x000000000dd3f800 nid=0x3444 runnable >> [0x000000000f46f000] >> java.lang.Thread.State: TIMED_WAITING (parking) >> at sun.misc.Unsafe.park(Native Method) >> at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:349) >> at >> com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:66) >> at >> com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:39) >> at >> com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55) >> at >> com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> at java.lang.Thread.run(Thread.java:722) >> >> So do you think it is normal?? >> >> -Sudharma >> >> >> On Thu, Oct 3, 2013 at 3:49 PM, Remko Popma <[email protected]>wrote: >> >>> If the events are being logged correctly I don't think there is a >>> problem. The async logger thread is either waiting for more work (log >>> events) to arrive from the ring buffer, or it has written to the disk and >>> it is blocked (waiting) for the I/O call to return. >>> >>> Best regards, >>> Remko >>> >>> Sent from my iPhone >>> >>> On 2013/10/03, at 19:02, Sudharma Puranik <[email protected]> >>> wrote: >>> >>> Yes I see log messages getting updated. >>> >>> >>> On Thu, Oct 3, 2013 at 2:54 PM, Remko Popma <[email protected]>wrote: >>> >>>> Are you seeing log messages in your log file? >>>> >>>> Sent from my iPhone >>>> >>>> > On 2013/10/03, at 18:21, Sudharma Puranik <[email protected]> >>>> wrote: >>>> > >>>> > Hello, >>>> > >>>> > I have created a complete asyncLogger and have started my >>>> application, While looking at the thread dump I See that the AsyncLogger is >>>> always waiting eventhough my logging is continuously happening. Can you >>>> please help me in understanding If I am doing something wrong. Attached is >>>> the dump snap. >>>> > >>>> > <image.png> >>>> > >>>> > Sudharma >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>> >> >
