Author: ihabunek
Date: Fri Jul 15 09:54:30 2011
New Revision: 1147068

URL: http://svn.apache.org/viewvc?rev=1147068&view=rev
Log:
LOG4PHP-143: LoggerConfiguratorPhp does not accept integer constants for 
appender threshold
* Fixed LoggerAppender::setThreshold() to accept integers (currently accepts 
only strings and LoggerLevel objects)
* Added tests

Modified:
    logging/log4php/trunk/src/changes/changes.xml
    logging/log4php/trunk/src/main/php/LoggerAppender.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=1147068&r1=1147067&r2=1147068&view=diff
==============================================================================
--- logging/log4php/trunk/src/changes/changes.xml (original)
+++ logging/log4php/trunk/src/changes/changes.xml Fri Jul 15 09:54:30 2011
@@ -21,6 +21,7 @@
        </properties>
        <body>
            <release version="2.2.0" date="SVN">
+               <action date="2011-07-14" type="fix" issue="LOG4PHP-143" 
dev="Ivan Habunek" due-to="Justin Cherniak" due-to-email="justin dot cherniak 
at gmail dot com">LoggerConfiguratorPhp does not accept integer constants for 
appender threshold</action>
            </release>
            <release version="2.1.0" date="2011-07-13" 
description="Stabilizing">
                        <action date="2011-06-01" type="fix" 
issue="LOG4PHP-138" dev="Christian Grobmeier">Permission denied while renaming 
log file when hundred of users are accessing the application</action>

Modified: logging/log4php/trunk/src/main/php/LoggerAppender.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/LoggerAppender.php?rev=1147068&r1=1147067&r2=1147068&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/LoggerAppender.php (original)
+++ logging/log4php/trunk/src/main/php/LoggerAppender.php Fri Jul 15 09:54:30 
2011
@@ -213,10 +213,10 @@ abstract class LoggerAppender {
         * @see LoggerOptionConverter::toLevel()
         */
        public function setThreshold($threshold) {
-               if(is_string($threshold)) {
-                       $this->threshold = 
LoggerOptionConverter::toLevel($threshold, null);
-               } else if($threshold instanceof LoggerLevel) {
+               if($threshold instanceof LoggerLevel) {
                        $this->threshold = $threshold;
+               } else {
+                       $this->threshold = 
LoggerOptionConverter::toLevel($threshold, null);
                }
        }
        

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=1147068&r1=1147067&r2=1147068&view=diff
==============================================================================
--- 
logging/log4php/trunk/src/test/php/configurators/LoggerConfiguratorPhpTest.php 
(original)
+++ 
logging/log4php/trunk/src/test/php/configurators/LoggerConfiguratorPhpTest.php 
Fri Jul 15 09:54:30 2011
@@ -42,7 +42,7 @@ class TestRenderer implements LoggerRend
 class LoggerConfiguratorPhpTest extends PHPUnit_Framework_TestCase {
 
     protected function setUp() {
-
+               Logger::resetConfiguration();
     }
 
     protected function tearDown() {
@@ -130,4 +130,58 @@ class LoggerConfiguratorPhpTest extends 
         self::assertEquals('test1,test2,test3', $actual);
 
     }
+    
+    /** Tests setting levels and thresholds using the integer constants. */
+    public function testLevelsConstant() {
+        Logger::configure(array (
+            'rootLogger' => array (
+                'level' => (string) LoggerLevel::ERROR,
+                'appenders' => array (
+                    'default', 'filetest'
+                ),
+            ),
+            'appenders' => array (
+                'default' => array (
+                    'class' => 'LoggerAppenderEcho',
+                       'threshold' => LoggerLevel::FATAL
+                )
+            ),
+            
+        ), 'LoggerConfiguratorPhp');
+        
+        
+        $root = Logger::getRootLogger();
+        self::assertEquals(LoggerLevel::getLevelError(), $root->getLevel());
+        
+        $appender = $root->getAppender("default");
+        self::assertTrue($appender instanceof LoggerAppenderEcho);
+               self::assertSame(LoggerLevel::getLevelFatal(), 
$appender->getThreshold());
+    }
+    
+    /** Tests setting levels and thresholds using the LoggerLevel objects. */
+    public function testLevelsObject() {
+        Logger::configure(array (
+            'rootLogger' => array (
+                'level' => LoggerLevel::getLevelError(),
+                'appenders' => array (
+                    'default', 'filetest'
+                ),
+            ),
+            'appenders' => array (
+                'default' => array (
+                    'class' => 'LoggerAppenderEcho',
+                       'threshold' => LoggerLevel::getLevelFatal()
+                )
+            ),
+            
+        ), 'LoggerConfiguratorPhp');
+        
+        
+        $root = Logger::getRootLogger();
+        self::assertEquals(LoggerLevel::getLevelError(), $root->getLevel());
+        
+        $appender = $root->getAppender("default");
+        self::assertTrue($appender instanceof LoggerAppenderEcho);
+               self::assertSame(LoggerLevel::getLevelFatal(), 
$appender->getThreshold());
+    }
 }
\ No newline at end of file


Reply via email to