[ https://issues.apache.org/jira/browse/HADOOP-6884?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12899145#action_12899145 ] Doug Cutting commented on HADOOP-6884: -------------------------------------- > 1. Code must remain as readable/simple as possible and maintainable (no wrapping isDebugEnabled() in all of source code). Does anyone believe that? I think the guards should ideally be limited to performance sensitive parts of the code. But if folks don't trust that can be maintained, then a warning when non-constant strings are logged might be acceptable. Constant strings should be as fast as the guard. > 2. Code must perform best (no varargs, autoboxing, string concatenation, etc for unused debug lines) We could easily implement a guard that both performs well and does not bloat code, e.g.: {code} public static void debugLog(String message) { LOG.debug(message); } public static void debugLog(String message, Object o1) { if (LOG.isDebugEnabled()) LOG.debug(MessageFormat.format(message, new Object[] {o1})); } public static void debugLog(String message, Object o1, Object o2) { if (LOG.isDebugEnabled()) LOG.debug(MessageFormat.format(message, new Object[] {o1, o2})); } public static void debugLog(String message, Object o1, Object o2, Object o3) { if (LOG.isDebugEnabled()) LOG.debug(MessageFormat.format(message, new Object[] {o1, o2, o3})); } ... {code} > 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: 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.