Sunday, 8 September 2013

How to Test if Log4j`s Async Logger is logging Asynchronously and NOT Synchronously

How to Test if Log4j`s Async Logger is logging Asynchronously and NOT
Synchronously

I have configured log4j with Async Appenders succesfully in log4j.xml as
shown in the example in the below link:
http://ricardozuasti.com/2009/asynchronous-logging-with-log4j/
I can see that the log is getting getting all the logging statements. But
why question is: How do I test if the log statements are getting created
in the log ASYNCHRONOUSLY and NOT synchronously? Any ideas?
I created a 'for' loop of 10000 iterations and within the 'for' loop, I
tried printing the date in milli-seconds. I hoped that I will see 'BATCH'
of statements getting printed a time difference. I was expecting Something
like below (i.e. 3 log statements with gap of 4 seconds) : 2013-09-09
00:54:50 Mon Sep 09 00:54:00 EDT 2013-Time in milliseconds: 1378702499000
2013-09-09 00:54:50 Mon Sep 09 00:54:00 EDT 2013-Time in milliseconds:
1378702499001 2013-09-09 00:54:50 Mon Sep 09 00:54:00 EDT 2013-Time in
milliseconds: 1378702499002 2013-09-09 00:54:50 Mon Sep 09 00:58:00 EDT
2013-Time in milliseconds: 1378702499003 2013-09-09 00:54:50 Mon Sep 09
00:58:00 EDT 2013-Time in milliseconds: 1378702499004 2013-09-09 00:54:50
Mon Sep 09 00:58:00 EDT 2013-Time in milliseconds: 1378702499005
But what I saw in the log is as below: 2013-09-09 00:54:50 Mon Sep 09
00:54:00 EDT 2013-Time in milliseconds: 1378702499000 2013-09-09 00:54:50
Mon Sep 09 00:54:00 EDT 2013-Time in milliseconds: 1378702499001
2013-09-09 00:54:50 Mon Sep 09 00:54:00 EDT 2013-Time in milliseconds:
1378702499002 2013-09-09 00:54:50 Mon Sep 09 00:54:00 EDT 2013-Time in
milliseconds: 1378702499003 2013-09-09 00:54:50 Mon Sep 09 00:54:00 EDT
2013-Time in milliseconds: 1378702499004 2013-09-09 00:54:50 Mon Sep 09
00:54:00 EDT 2013-Time in milliseconds: 1378702499005
So, how do I test if the log statements got written to the log
Asynchronously and NOT synchronously?

No comments:

Post a Comment