Howdy,
This is why you surround your code in isInfoEnabled / isDebugEnabled /
isEnabledFor clauses if you're going to have millions of logging
statements.  That has the potential to reduce the cost of (not) logging
by two orders of magnitude.

Yoav Shapira
Millennium ChemInformatics


>-----Original Message-----
>From: David McVicar [mailto:[EMAIL PROTECTED]
>Sent: Wednesday, October 29, 2003 9:21 AM
>To: [EMAIL PROTECTED]
>Subject: Performance of not logging in Log4J vs. JDK 1.4 Logging
>
>Hi,
>
>I have written a basic test to exercise the effect of
>adding logging to an application but configuring no
>logging to be output.  The test consists of some JUnit
>tests that repeatedly call both the Log4J and JDK 1.4
>Logger.log(Level.INFO, "Hello") method 10million times
>(its just a test so please don't flame me for using
>Property to pass the loopCount!).  The tests are
>configured using log4j.xml (Log4J) and
>logging.properties (JDK 1.4).  I used the JUnitPerf
>classes from Clarkware.com to measure the performance.
>
>Unforunately I have found that Log4J 1.2.8 took 2023ms
>while JDK 1.4.2 took only 892ms.
>
>The performance while not logging is a concern in my
>application.  I am aware that I could instrument the
>generated byte code using Just4Log but would prefer
>not to add a post compilation step.
>
>I have read through the code and it appears that the
>effort of evaluating the priority.isGreaterOrEqual()
>is where the time is being lost.
>
>  public
>  void log(Priority priority, Object message) {
>    if(repository.isDisabled(priority.level)) {
>      return;
>    }
>
>if(priority.isGreaterOrEqual(this.getEffectiveLevel()))
>      forcedLog(FQCN, priority, message, null);
>  }
>
>Would it be possible during configuration of Log4J
>that a flag be set to disable the entire repository if
>all of the Categories are turned OFF?
>
>Although I think that I have configured both Log4J and
>JDK 1.4 not to log using a specific class name the
>costs of not logging are greater in Log4J.  I may
>however have made an error in my configuration - if so
>I apologise in advance.
>
>I have enclosed the tests for reference.
>
>I have been a user of Log4J for about 3 years and
>would like to say a quick thanks for all of your good
>work.
>
>Thanks in advance for any assistance you can provide
>in improving the performance of Log4J.
>
>David
>
>
>__________________________________
>Do you Yahoo!?
>Exclusive Video Premiere - Britney Spears
>http://launch.yahoo.com/promos/britneyspears/



This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to