From commits-return-329-apmail-logging-commits-archive=logging.apache.org@logging.apache.org Sun Nov 13 09:46:08 2011 Return-Path: X-Original-To: apmail-logging-commits-archive@minotaur.apache.org Delivered-To: apmail-logging-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2C3C77724 for ; Sun, 13 Nov 2011 09:46:08 +0000 (UTC) Received: (qmail 40916 invoked by uid 500); 13 Nov 2011 09:46:08 -0000 Delivered-To: apmail-logging-commits-archive@logging.apache.org Received: (qmail 40895 invoked by uid 500); 13 Nov 2011 09:46:08 -0000 Mailing-List: contact commits-help@logging.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@logging.apache.org Delivered-To: mailing list commits@logging.apache.org Received: (qmail 40887 invoked by uid 99); 13 Nov 2011 09:46:07 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Nov 2011 09:46:07 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Nov 2011 09:46:04 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B4A51238889B; Sun, 13 Nov 2011 09:45:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1201417 - in /logging/log4php/trunk/src/main/php: LoggerConfigurator.php configurators/LoggerConfigurationAdapterXML.php Date: Sun, 13 Nov 2011 09:45:43 -0000 To: commits@logging.apache.org From: ihabunek@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111113094543.B4A51238889B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ihabunek Date: Sun Nov 13 09:45:43 2011 New Revision: 1201417 URL: http://svn.apache.org/viewvc?rev=1201417&view=rev Log: LOG4PHP-152: Improved error reporting for configurator. Modified: logging/log4php/trunk/src/main/php/LoggerConfigurator.php logging/log4php/trunk/src/main/php/configurators/LoggerConfigurationAdapterXML.php Modified: logging/log4php/trunk/src/main/php/LoggerConfigurator.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/LoggerConfigurator.php?rev=1201417&r1=1201416&r2=1201417&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/LoggerConfigurator.php (original) +++ logging/log4php/trunk/src/main/php/LoggerConfigurator.php Sun Nov 13 09:45:43 2011 @@ -235,21 +235,25 @@ class LoggerConfigurator // TODO: add this check to other places where it might be useful if (!is_array($config)) { $type = gettype($config); - $this->warn("Invalid configuration provided for [$name] appender. Expected an array, found <$type>. Skipping appender definition."); + $this->warn("Invalid configuration provided for appender [$name]. Expected an array, found <$type>. Skipping appender definition."); return; } // Parse appender class $class = $config['class']; + if (empty($class)) { + $this->warn("No class given for appender [$name]. Skipping appender definition."); + return; + } if (!class_exists($class)) { - $this->warn("Class [$class] does not exist. Skipping appender [$name]."); + $this->warn("Invalid class [$class] given for appender [$name]. Class does not exist. Skipping appender definition."); return; } // Instantiate the appender $appender = new $class($name); if (!($appender instanceof LoggerAppender)) { - $this->warn("[$class] is not a valid appender class. Skipping appender [$name]."); + $this->warn("Invalid class [$class] given for appender [$name]. Not a valid LoggerAppender class. Skipping appender definition."); return; } @@ -294,6 +298,10 @@ class LoggerConfigurator private function createAppenderLayout(LoggerAppender $appender, $config) { $name = $appender->getName(); $class = $config['class']; + if (empty($class)) { + $this->warn("Layout class not specified for appender [$name]. Reverting to default layout."); + return; + } if (!class_exists($class)) { $this->warn("Nonexistant layout class [$class] specified for appender [$name]. Reverting to default layout."); return; Modified: logging/log4php/trunk/src/main/php/configurators/LoggerConfigurationAdapterXML.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/configurators/LoggerConfigurationAdapterXML.php?rev=1201417&r1=1201416&r2=1201417&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/configurators/LoggerConfigurationAdapterXML.php (original) +++ logging/log4php/trunk/src/main/php/configurators/LoggerConfigurationAdapterXML.php Sun Nov 13 09:45:43 2011 @@ -96,7 +96,11 @@ class LoggerConfigurationAdapterXML impl /** Parses an node. */ private function parseAppender(SimpleXMLElement $node) { $name = $this->getAttributeValue($node, 'name'); - + if (empty($name)) { + $this->warn("An node is missing the required 'name' attribute. Skipping appender definition."); + return; + } + $appender = array(); $appender['class'] = $this->getAttributeValue($node, 'class'); @@ -136,7 +140,7 @@ class LoggerConfigurationAdapterXML impl foreach($paramsNode->param as $paramNode) { if (empty($paramNode['name'])) { - $this->warn("Found parameter node without a name. Skipping parameter."); + $this->warn("A node is missing the required 'name' attribute. Skipping parameter."); continue; } @@ -169,14 +173,12 @@ class LoggerConfigurationAdapterXML impl private function parseLogger(SimpleXMLElement $node) { $logger = array(); - // Check logger name exists (mandatory because it is used as the array key) - if (empty($node['name'])) { - $this->warn("Found logger without a 'name' attribute. All loggers must be named. Skipping."); + $name = $this->getAttributeValue($node, 'name'); + if (empty($name)) { + $this->warn("A node is missing the required 'name' attribute. Skipping logger definition."); return; } - $name = (string) $node['name']; - if (isset($node->level)) { $logger['level'] = $this->getAttributeValue($node->level, 'value'); } @@ -232,8 +234,7 @@ class LoggerConfigurationAdapterXML impl // ****************************************** private function getAttributeValue(SimpleXMLElement $node, $name) { - $attrs = $node->attributes(); - return isset($attrs[$name]) ? (string) $attrs[$name] : null; + return isset($node[$name]) ? (string) $node[$name] : null; } private function warn($message) {