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/12/09 11:18:38 UTC

svn commit: r1212319 - in /logging/log4php/trunk/src: changes/changes.xml main/php/LoggerConfigurator.php main/php/LoggerLevel.php test/php/LoggerConfiguratorTest.php

Author: ihabunek
Date: Fri Dec  9 10:18:37 2011
New Revision: 1212319

URL: http://svn.apache.org/viewvc?rev=1212319&view=rev
Log:
LOG4PHP-162: Warning for invalid appender threshold level never called

Modified:
    logging/log4php/trunk/src/changes/changes.xml
    logging/log4php/trunk/src/main/php/LoggerConfigurator.php
    logging/log4php/trunk/src/main/php/LoggerLevel.php
    logging/log4php/trunk/src/test/php/LoggerConfiguratorTest.php

Modified: logging/log4php/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/changes/changes.xml?rev=1212319&r1=1212318&r2=1212319&view=diff
==============================================================================
--- logging/log4php/trunk/src/changes/changes.xml (original)
+++ logging/log4php/trunk/src/changes/changes.xml Fri Dec  9 10:18:37 2011
@@ -21,6 +21,7 @@
 	</properties>
 	<body>
 	    <release version="2.2.0" date="SVN">
+	    	<action date="2011-12-09" type="fix" issue="LOG4PHP-162" dev="Ivan Habunek">Warning for invalid appender threshold level never called.</action>
 	    	<action date="2011-12-08" type="fix" issue="LOG4PHP-114" dev="Ivan Habunek">Order of params in LoggerAppenderDailyFile configuration is significant.</action>
 	    	<action date="2011-12-08" type="update" issue="LOG4PHP-154" dev="Ivan Habunek">Rewritten LoggerAppenderSocket to use a layout.</action>
 	    	<action date="2011-12-04" type="add" issue="LOG4PHP-160" dev="Ivan Habunek" due-to="Florian Semm" due-to-email="florian dot semm at gmx dot de">Appeneders should use a default layout is no layout is specified in configuration</action>

Modified: logging/log4php/trunk/src/main/php/LoggerConfigurator.php
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/LoggerConfigurator.php?rev=1212319&r1=1212318&r2=1212319&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/LoggerConfigurator.php (original)
+++ logging/log4php/trunk/src/main/php/LoggerConfigurator.php Fri Dec  9 10:18:37 2011
@@ -193,7 +193,7 @@ class LoggerConfigurator
 			if (isset($threshold)) {
 				$hierarchy->setThreshold($threshold);
 			} else {
-				$this->warn("Invalid threshold {$config['threshold']} specified.");
+				$this->warn("Invalid threshold value [{$config['threshold']}] specified. Ignoring threshold definition.");
 			}
 		}
 		
@@ -295,8 +295,7 @@ class LoggerConfigurator
 			if ($threshold instanceof LoggerLevel) {
 				$appender->setThreshold($threshold);
 			} else {
-				$default = $appender->getThreshold();
-				$this->warn("Invalid threshold value [{$config['threshold']}] specified for appender [$name]. Reverting to default value [$default].");
+				$this->warn("Invalid threshold value [{$config['threshold']}] specified for appender [$name]. Ignoring threshold definition.");
 			}
 		}
 		
@@ -416,7 +415,7 @@ class LoggerConfigurator
 				$logger->setLevel($level);
 			} else {
 				$default = $logger->getLevel();
-				$this->warn("Invalid logger level [{$config['level']}] specified for logger [$loggerName].");
+				$this->warn("Invalid level value [{$config['level']}] specified for logger [$loggerName]. Ignoring level definition.");
 			}
 		}
 		
@@ -437,7 +436,7 @@ class LoggerConfigurator
 			if (is_bool($additivity)) {
 				$logger->setAdditivity($additivity);
 			} else {
-				$this->warn("Invalid additivity value [{$config['additivity']}] specified for logger [$loggerName].");
+				$this->warn("Invalid additivity value [{$config['additivity']}] specified for logger [$loggerName]. Ignoring additivity setting.");
 			}
 		}
 	}

Modified: logging/log4php/trunk/src/main/php/LoggerLevel.php
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/LoggerLevel.php?rev=1212319&r1=1212318&r2=1212319&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/LoggerLevel.php (original)
+++ logging/log4php/trunk/src/main/php/LoggerLevel.php Fri Dec  9 10:18:37 2011
@@ -228,40 +228,37 @@ class LoggerLevel {
 	}
 
 	/**
-	 * Convert the string passed as argument to a level. If the
-	 * conversion fails, then this method returns a DEBUG Level.
+	 * Convert the input argument to a level. If the conversion fails, then 
+	 * this method returns the provided default level.
 	 *
-	 * @param mixed $arg
-	 * @param LoggerLevel $default
+	 * @param mixed $arg The value to convert to level.
+	 * @param LoggerLevel $default Value to return if conversion is not possible.
+	 * @return LoggerLevel 
 	 */
 	public static function toLevel($arg, $defaultLevel = null) {
-		if($defaultLevel === null) {
-			return self::toLevel($arg, self::getLevelDebug());
+		if(is_int($arg)) {
+			switch($arg) {
+				case self::ALL:	return self::getLevelAll();
+				case self::TRACE: return self::getLevelTrace();
+				case self::DEBUG: return self::getLevelDebug();
+				case self::INFO: return self::getLevelInfo();
+				case self::WARN: return self::getLevelWarn();
+				case self::ERROR: return self::getLevelError();
+				case self::FATAL: return self::getLevelFatal();
+				case self::OFF:	return self::getLevelOff();
+				default: return $defaultLevel;
+			}
 		} else {
-			if(is_int($arg)) {
-				switch($arg) {
-					case self::ALL:	return self::getLevelAll();
-					case self::TRACE: return self::getLevelTrace();
-					case self::DEBUG: return self::getLevelDebug();
-					case self::INFO: return self::getLevelInfo();
-					case self::WARN: return self::getLevelWarn();
-					case self::ERROR: return self::getLevelError();
-					case self::FATAL: return self::getLevelFatal();
-					case self::OFF:	return self::getLevelOff();
-					default: return $defaultLevel;
-				}
-			} else {
-				switch(strtoupper($arg)) {
-					case 'ALL':	return self::getLevelAll();
-					case 'TRACE': return self::getLevelTrace();
-					case 'DEBUG': return self::getLevelDebug();
-					case 'INFO': return self::getLevelInfo();
-					case 'WARN': return self::getLevelWarn();
-					case 'ERROR': return self::getLevelError();
-					case 'FATAL': return self::getLevelFatal();
-					case 'OFF':	return self::getLevelOff();
-					default: return $defaultLevel;
-				}
+			switch(strtoupper($arg)) {
+				case 'ALL':	return self::getLevelAll();
+				case 'TRACE': return self::getLevelTrace();
+				case 'DEBUG': return self::getLevelDebug();
+				case 'INFO': return self::getLevelInfo();
+				case 'WARN': return self::getLevelWarn();
+				case 'ERROR': return self::getLevelError();
+				case 'FATAL': return self::getLevelFatal();
+				case 'OFF':	return self::getLevelOff();
+				default: return $defaultLevel;
 			}
 		}
 	}

Modified: logging/log4php/trunk/src/test/php/LoggerConfiguratorTest.php
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/LoggerConfiguratorTest.php?rev=1212319&r1=1212318&r2=1212319&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/LoggerConfiguratorTest.php (original)
+++ logging/log4php/trunk/src/test/php/LoggerConfiguratorTest.php Fri Dec  9 10:18:37 2011
@@ -276,4 +276,153 @@
  		$expected = "INFO - info" . PHP_EOL . "message: info" . PHP_EOL;
   		$this->assertSame($expected, $actual);
  	}
+ 	
+  	public function testThreshold()
+ 	{
+ 		Logger::configure(array(
+ 			'threshold' => 'WARN',
+ 			'rootLogger' => array(
+ 				'appenders' => array('default')
+ 			),
+ 			'appenders' => array(
+ 				'default' => array(
+ 					'class' => 'LoggerAppenderEcho',
+ 				),
+ 			) 
+ 		));
+ 		
+ 		$actual = Logger::getHierarchy()->getThreshold();
+ 		$expected = LoggerLevel::getLevelWarn();
+ 		
+ 		self::assertSame($expected, $actual);
+ 	}
+ 	
+ 	/**
+ 	* @expectedException PHPUnit_Framework_Error
+ 	* @expectedExceptionMessage Invalid threshold value [FOO] specified. Ignoring threshold definition.
+ 	*/
+  	public function testInvalidThreshold()
+ 	{
+ 		Logger::configure(array(
+ 			'threshold' => 'FOO',
+ 			'rootLogger' => array(
+ 				'appenders' => array('default')
+ 			),
+ 			'appenders' => array(
+ 				'default' => array(
+ 					'class' => 'LoggerAppenderEcho',
+ 				),
+ 			) 
+ 		));
+ 	}
+ 	
+ 	public function testAppenderThreshold()
+ 	{
+ 		Logger::configure(array(
+ 			'rootLogger' => array(
+ 				'appenders' => array('default')
+ 			),
+ 			'appenders' => array(
+ 				'default' => array(
+ 					'class' => 'LoggerAppenderEcho',
+ 					'threshold' => 'INFO'
+ 				),
+ 			) 
+ 		));
+ 		
+ 		$actual = Logger::getRootLogger()->getAppender('default')->getThreshold();
+ 		$expected = LoggerLevel::getLevelInfo();
+
+ 		self::assertSame($expected, $actual);
+ 	}
+ 	
+ 	/**
+ 	 * @expectedException PHPUnit_Framework_Error
+ 	 * @expectedExceptionMessage Invalid threshold value [FOO] specified for appender [default]. Ignoring threshold definition.
+ 	 */
+ 	public function testAppenderInvalidThreshold()
+ 	{
+ 		Logger::configure(array(
+ 			'rootLogger' => array(
+ 				'appenders' => array('default')
+ 			),
+ 			'appenders' => array(
+ 				'default' => array(
+ 					'class' => 'LoggerAppenderEcho',
+ 					'threshold' => 'FOO'
+ 				),
+ 			) 
+ 		));
+ 	}
+ 	
+ 	public function testLoggerThreshold()
+ 	{
+ 		Logger::configure(array(
+ 			'rootLogger' => array(
+ 				'appenders' => array('default'),
+ 				'level' => 'ERROR'
+ 			),
+ 			'loggers' => array(
+ 				'default' => array(
+ 					'appenders' => array('default'),
+ 		 			'level' => 'WARN'
+ 				)
+ 			),
+ 			'appenders' => array(
+ 				'default' => array(
+ 					'class' => 'LoggerAppenderEcho',
+ 				),
+ 			) 
+ 		));
+ 		
+ 		// Check root logger
+ 		$actual = Logger::getRootLogger()->getLevel();
+ 		$expected = LoggerLevel::getLevelError();
+ 		self::assertSame($expected, $actual);
+ 		
+ 		// Check default logger
+ 		$actual = Logger::getLogger('default')->getLevel();
+ 		$expected = LoggerLevel::getLevelWarn();
+ 		self::assertSame($expected, $actual);
+ 	}
+ 	
+ 	/**
+ 	 * @expectedException PHPUnit_Framework_Error
+ 	 * @expectedExceptionMessage Invalid level value [FOO] specified for logger [default]. Ignoring level definition.
+ 	 */
+ 	public function testInvalidLoggerThreshold()
+ 	{
+ 		Logger::configure(array(
+ 			'loggers' => array(
+ 				'default' => array(
+ 					'appenders' => array('default'),
+ 		 			'level' => 'FOO'
+ 				)
+ 			),
+ 			'appenders' => array(
+ 				'default' => array(
+ 					'class' => 'LoggerAppenderEcho',
+ 				),
+ 			) 
+ 		));
+ 	}
+ 	
+ 	/**
+ 	 * @expectedException PHPUnit_Framework_Error
+ 	 * @expectedExceptionMessage Invalid level value [FOO] specified for logger [root]. Ignoring level definition.
+ 	 */
+  	public function testInvalidRootLoggerThreshold()
+ 	{
+ 		Logger::configure(array(
+ 			'rootLogger' => array(
+ 				'appenders' => array('default'),
+ 				'level' => 'FOO'
+ 			),
+ 			'appenders' => array(
+ 				'default' => array(
+ 					'class' => 'LoggerAppenderEcho',
+ 				),
+ 			) 
+ 		));
+ 	}
  }
\ No newline at end of file