You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by ih...@apache.org on 2011/05/20 13:44:34 UTC

svn commit: r1125335 - in /logging/log4php/trunk/src: changes/changes.xml main/php/renderers/LoggerRendererMap.php test/php/renderers/LoggerRendererMapTest.php

Author: ihabunek
Date: Fri May 20 11:44:34 2011
New Revision: 1125335

URL: http://svn.apache.org/viewvc?rev=1125335&view=rev
Log:
LOG4PHP-122: RendererMap::getByClassName doesn't recognize instances of child classes

Modified:
    logging/log4php/trunk/src/changes/changes.xml
    logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php
    logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php

Modified: logging/log4php/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/changes/changes.xml?rev=1125335&r1=1125334&r2=1125335&view=diff
==============================================================================
--- logging/log4php/trunk/src/changes/changes.xml (original)
+++ logging/log4php/trunk/src/changes/changes.xml Fri May 20 11:44:34 2011
@@ -24,6 +24,7 @@
   </properties>
   <body>
   	<release version="2.1" description="Stabilizing">
+  		<action type="fix" issue="LOG4PHP-122" by="Moritz Schmidt">RendererMap::getByClassName doesnt recognize instances of child classes</action>
   		<action type="fix" issue="LOG4PHP-123" by="Moritz Schmidt, Ivan Habunek">LoggerConfiguratorPhp does not parse renderer configuration</action>
   		<action type="fix" issue="LOG4PHP-110" by="Vladimir Gorej, Ivan Habunek">Adapted MongoDB appender to better fit in log4php codebase.</action>
   		<action type="fix" issue="LOG4PHP-126" by="Peter Chapman, Christian Grobmeier">LoggerConfiguratorPhp does not appear to respect appender file property from config</action>

Modified: logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php?rev=1125335&r1=1125334&r2=1125335&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php (original)
+++ logging/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php Fri May 20 11:44:34 2011
@@ -126,7 +126,8 @@ class LoggerRendererMap {
 	 */
 	public function getByClassName($class) {
 		$r = null;
-		for($c = strtolower($class); !empty($c); $c = get_parent_class($c)) {
+		for($c = $class; !empty($c); $c = get_parent_class($c)) {
+			$c = strtolower($c);
 			if(isset($this->map[$c])) {
 				return $this->map[$c];
 			}

Modified: logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php?rev=1125335&r1=1125334&r2=1125335&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php (original)
+++ logging/log4php/trunk/src/test/php/renderers/LoggerRendererMapTest.php Fri May 20 11:44:34 2011
@@ -22,12 +22,16 @@
  * @version    SVN: $Id$
  * @link       http://logging.apache.org/log4php
  */
+
 class Fruit3 {
     public $test1 = 'test1';
     public $test2 = 'test2';
     public $test3 = 'test3';
 }
 
+class Fruit3Descendant extends Fruit3 {
+}
+
 class FruitRenderer3 implements LoggerRendererObject {
     public function render($o) {
 		return $o->test1.','.$o->test2.','.$o->test3;
@@ -47,6 +51,17 @@ class LoggerRendererMapTest extends PHPU
 		self::assertEquals('test1,test2,test3', $e);
 	}
         
+	public function testFindAndRenderDescendants() {
+		$fruit = new Fruit3Descendant();
+		Logger::configure(dirname(__FILE__).'/test4.properties');
+		Logger::initialize();
+		$hierarchy = Logger::getHierarchy();
+
+		$map = $hierarchy->getRendererMap();
+		$e = $map->findAndRender($fruit);
+		self::assertEquals('test1,test2,test3', $e);
+	}
+
 	public function testGetByObject() {
 		$fruit = new Fruit3();
 		Logger::configure(dirname(__FILE__).'/test4.properties');