[ 
https://issues.apache.org/jira/browse/HADOOP-6884?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12902943#action_12902943
 ] 

Doug Cutting commented on HADOOP-6884:
--------------------------------------

Scott> This is not much different than just using SLF4J [ ... ]

I too would prefer we simply switch to slf4j.  In performance-critical code 
that requires complex log messages we might still ocasionally use 
isDebugEnabled(), as we might make other local code optimizations in critical 
sections.  To be clear, I find Konstantin's approach acceptable, but feel a 
move to slf4j would be simpler with essentially the same benefits. 

String concatenation is the biggest potential performance problem.  Adding an 
automated test that detects string concatenation in log statements would be a 
good addition.  Before we can add that test though, we need a logging API that 
does not require string concatenation and does not bloat code.  Slf4j and 
Konstantin's approach both provide one.


> Add LOG.isDebugEnabled() guard for each LOG.debug("...")
> --------------------------------------------------------
>
>                 Key: HADOOP-6884
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6884
>             Project: Hadoop Common
>          Issue Type: Improvement
>    Affects Versions: 0.22.0
>            Reporter: Erik Steffl
>            Assignee: Erik Steffl
>             Fix For: 0.22.0
>
>         Attachments: FunAgain.java, FunAgain.java, HADOOP-6884-0.22-1.patch, 
> HADOOP-6884-0.22.patch
>
>
> Each LOG.debug("...") should be executed only if LOG.isDebugEnabled() is 
> true, in some cases it's expensive to construct the string that is being 
> printed to log. It's much easier to always use LOG.isDebugEnabled() because 
> it's easier to check (rather than in each case reason whether it's necessary 
> or not).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to