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