logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Curt Arnold <carn...@apache.org>
Subject Re: performance problem in multithread environment
Date Thu, 16 Dec 2010 06:14:26 GMT

On Dec 13, 2010, at 10:54 AM, Jacob Kjome wrote:

> You will get better performance by not logging at all, no question.  However, there are
tuning possibilities.  I see you mention "logger.info()".  In production, I generally only
have "warn()" and above for the vast majority of loggers.  In fact, I configure the root logger
up with the "WARN" level and selectively set other loggers to something less than WARN (if
need be).
> 
> The other thing you might look at is whether you are concatenating strings in your logging
statements.  For instance the following will incur an unnecessary cost in concatenating strings
even when the "DEBUG" level is not enabled....
> 
> logger.debug("product: " + someProduct + ", price: " + somePrice);
> 
> A more efficient way to define this in your code is....
> 
> if (logger.isDebugEnabled()) {
>     logger.debug("product: " + someProduct + ", price: " + somePrice);
> }
> 

alternatively use LogMF or LogSF (in the extras companion or in the SVN HEAD)

LogMF.debug(logger, "product: {0}, price: {1}", price,somePrice);

will have performance generally comparable to using logger.isDebugEnabled when logging is
disabled since any conversion and concatenation is deferred until after the logging level
is checked.
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Mime
View raw message