Author: ihabunek
Date: Fri May 20 08:28:41 2011
New Revision: 1125276

URL: http://svn.apache.org/viewvc?rev=1125276&view=rev
Log:
LOG4PHP-123: LoggerConfiguratorPhp does not parse renderer configuration

Modified:
    logging/log4php/trunk/src/changes/changes.xml
    logging/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php
    
logging/log4php/trunk/src/test/php/configurators/LoggerConfiguratorPhpTest.php

Modified: logging/log4php/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/changes/changes.xml?rev=1125276&r1=1125275&r2=1125276&view=diff
==============================================================================
--- logging/log4php/trunk/src/changes/changes.xml (original)
+++ logging/log4php/trunk/src/changes/changes.xml Fri May 20 08:28:41 2011
@@ -24,6 +24,7 @@
   </properties>
   <body>
        <release version="2.1" description="Stabilizing">
+               <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>
                <action type="fix" issue="LOG4PHP-118" by="Craig 
Marvelley">Additivity cannot be disabled through log4php.properties ini 
file.</action>

Modified: 
logging/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php?rev=1125276&r1=1125275&r2=1125276&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php 
(original)
+++ logging/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php 
Fri May 20 08:28:41 2011
@@ -54,6 +54,13 @@ class LoggerConfiguratorPhp implements L
                if(isset($config['threshold'])) {
                        
$hierarchy->setThreshold(LoggerOptionConverter::toLevel($config['threshold'], 
LoggerLevel::getLevelAll()));
                }
+
+               // add renderes
+               if (isset($config['renderers'])) {
+                       foreach ($config['renderers'] as $renderedClass => 
$renderingClass) {
+                               
$hierarchy->getRendererMap()->addRenderer($renderedClass, $renderingClass);
+                       }
+               }
                
                // parse and create appenders
                if(isset($config['appenders'])) {

Modified: 
logging/log4php/trunk/src/test/php/configurators/LoggerConfiguratorPhpTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/configurators/LoggerConfiguratorPhpTest.php?rev=1125276&r1=1125275&r2=1125276&view=diff
==============================================================================
--- 
logging/log4php/trunk/src/test/php/configurators/LoggerConfiguratorPhpTest.php 
(original)
+++ 
logging/log4php/trunk/src/test/php/configurators/LoggerConfiguratorPhpTest.php 
Fri May 20 08:28:41 2011
@@ -24,6 +24,18 @@
  * @link       http://logging.apache.org/log4php
  */
 
+class TestClass {
+    public $test1 = 'test1';
+    public $test2 = 'test2';
+    public $test3 = 'test3';
+}
+
+class TestRenderer implements LoggerRendererObject {
+       public function render($o) {
+               return "{$o->test1},{$o->test2},{$o->test3}";
+       }
+}
+
 class LoggerConfiguratorPhpTest extends PHPUnit_Framework_TestCase {
 
     protected function setUp() {
@@ -31,25 +43,28 @@ class LoggerConfiguratorPhpTest extends 
     }
 
     protected function tearDown() {
-        Logger :: resetConfiguration();
+        Logger::resetConfiguration();
     }
 
     public function testConfigure() {
-        Logger :: configure(dirname(__FILE__) . '/test1.php', 
'LoggerConfiguratorPhp');
-        $root = Logger :: getRootLogger();
-        self :: assertEquals(LoggerLevel :: getLevelWarn(), $root->getLevel());
+        Logger::configure(dirname(__FILE__) . '/test1.php', 
'LoggerConfiguratorPhp');
+        $root = Logger::getRootLogger();
+        self::assertEquals(LoggerLevel::getLevelWarn(), $root->getLevel());
         $appender = $root->getAppender("default");
-        self :: assertTrue($appender instanceof LoggerAppenderEcho);
+        self::assertTrue($appender instanceof LoggerAppenderEcho);
         $layout = $appender->getLayout();
-        self :: assertTrue($layout instanceof LoggerLayoutSimple);
-        $logger = Logger :: getLogger('mylogger');
-        self :: assertEquals(LoggerLevel :: getLevelInfo(), 
$logger->getLevel());
-        $logger = Logger :: getLogger('tracer');
-        self :: assertEquals(LoggerLevel :: getLevelTrace(), 
$logger->getLevel());
+        self::assertTrue($layout instanceof LoggerLayoutSimple);
+        $logger = Logger::getLogger('mylogger');
+        self::assertEquals(LoggerLevel::getLevelInfo(), $logger->getLevel());
+        $logger = Logger::getLogger('tracer');
+        self::assertEquals(LoggerLevel::getLevelTrace(), $logger->getLevel());
     }
 
     public function testConfigureArray() {
-        Logger :: configure(array (
+        Logger::configure(array (
+            'renderers' => array(
+                'TestClass' => 'TestRenderer',
+            ),
             'threshold' => 'ALL',
             'rootLogger' => array (
                 'level' => 'WARN',
@@ -88,23 +103,28 @@ class LoggerConfiguratorPhpTest extends 
             ),
             
         ), 'LoggerConfiguratorPhp');
-        $root = Logger :: getRootLogger();
-        self :: assertEquals(LoggerLevel :: getLevelWarn(), $root->getLevel());
+        $root = Logger::getRootLogger();
+        self::assertEquals(LoggerLevel::getLevelWarn(), $root->getLevel());
         $appender = $root->getAppender("default");
-        self :: assertTrue($appender instanceof LoggerAppenderEcho);
+        self::assertTrue($appender instanceof LoggerAppenderEcho);
         $layout = $appender->getLayout();
-        self :: assertTrue($layout instanceof LoggerLayoutSimple);
+        self::assertTrue($layout instanceof LoggerLayoutSimple);
         
         $appender = $root->getAppender("filetest");
-        self :: assertTrue($appender instanceof LoggerAppenderFile);
+        self::assertTrue($appender instanceof LoggerAppenderFile);
         $layout = $appender->getLayout();
-        self :: assertTrue($layout instanceof LoggerLayoutSimple);
+        self::assertTrue($layout instanceof LoggerLayoutSimple);
         $file = $appender->getFile();
-        self :: assertEquals('../../../target/temp/xy.log', $file);
+        self::assertEquals('../../../target/temp/xy.log', $file);
         
-        $logger = Logger :: getLogger('mylogger');
-        self :: assertEquals(LoggerLevel :: getLevelInfo(), 
$logger->getLevel());
-        $logger = Logger :: getLogger('tracer');
-        self :: assertEquals(LoggerLevel :: getLevelTrace(), 
$logger->getLevel());
+        $logger = Logger::getLogger('mylogger');
+        self::assertEquals(LoggerLevel::getLevelInfo(), $logger->getLevel());
+        $logger = Logger::getLogger('tracer');
+        self::assertEquals(LoggerLevel::getLevelTrace(), $logger->getLevel());
+
+        $map = Logger::getHierarchy()->getRendererMap();
+        $actual = $map->findAndRender(new TestClass());
+        self::assertEquals('test1,test2,test3', $actual);
+
     }
 }
\ No newline at end of file


Reply via email to