[ 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.