Return-Path: Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: (qmail 88200 invoked from network); 16 Aug 2010 22:35:43 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 16 Aug 2010 22:35:43 -0000 Received: (qmail 83723 invoked by uid 500); 16 Aug 2010 22:35:43 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 83647 invoked by uid 500); 16 Aug 2010 22:35:42 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 83639 invoked by uid 99); 16 Aug 2010 22:35:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Aug 2010 22:35:42 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Aug 2010 22:35:42 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o7GMZLJV022606 for ; Mon, 16 Aug 2010 22:35:22 GMT Message-ID: <1100279.379881281998121884.JavaMail.jira@thor> Date: Mon, 16 Aug 2010 18:35:21 -0400 (EDT) From: "Doug Cutting (JIRA)" To: common-issues@hadoop.apache.org Subject: [jira] Commented: (HADOOP-6884) Add LOG.isDebugEnabled() guard for each LOG.debug("...") In-Reply-To: <8688001.34681280270784520.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ 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.