You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by bo...@ntlworld.com on 2004/01/16 18:30:29 UTC

Absolute performance

While with my mind on some unrelated performance issues in a project I scanned through some tips in http://www.javaperformancetuning.com

The ones in http://www.javaperformancetuning.com/tips/final.shtml made me think that maybe the best logger definition whould be -

private static final LOG = Logger.getLogger(MyClass.class);

I quote - 
"Generally, I wouldn't go out of my way to declare a method or class final purely for performance reasons. Only after you've definitely identified a performance problem is this even worth considering. 
On the other hand, final variables, especially static final variables, are well worth using as standard."

A tip further down for another logging system would suggest that for log4j even better performance could be gained by using both -

private static final LOG = Logger.getLogger(MyClass.class);
private static final DEBUG_ENABLED = LOG.isDebugEnabled();

Then in code it would be

    if (DEBUG_ENABLED) LOG.debug("Hello Logging World");

Is there any reason why this is not already suggested on the log4j website. Is there any circumstance for which it wouldn't be recommended?

Bob.


-----------------------------------------
Email provided by http://www.ntlhome.com/



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org