You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ih...@apache.org on 2011/11/13 10:45:43 UTC
svn commit: r1201417 - in /logging/log4php/trunk/src/main/php:
LoggerConfigurator.php configurators/LoggerConfigurationAdapterXML.php
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 <appender> node. */
private function parseAppender(SimpleXMLElement $node) {
$name = $this->getAttributeValue($node, 'name');
-
+ if (empty($name)) {
+ $this->warn("An <appender> 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 <param> 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 <logger> 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) {