Author: ihabunek
Date: Sun Dec  4 13:26:46 2011
New Revision: 1210109

URL: http://svn.apache.org/viewvc?rev=1210109&view=rev
Log: (empty)

Modified:
    logging/log4php/trunk/src/changes/changes.xml
    logging/log4php/trunk/src/main/php/LoggerAppender.php
    logging/log4php/trunk/src/test/php/LoggerAppenderTest.php

Modified: logging/log4php/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/changes/changes.xml?rev=1210109&r1=1210108&r2=1210109&view=diff
==============================================================================
--- logging/log4php/trunk/src/changes/changes.xml (original)
+++ logging/log4php/trunk/src/changes/changes.xml Sun Dec  4 13:26:46 2011
@@ -21,6 +21,7 @@
        </properties>
        <body>
            <release version="2.2.0" date="SVN">
+               <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>
                <action date="2011-10-23" type="add" issue="LOG4PHP-155" 
dev="Ivan Habunek">Created a new layout LoggerLayoutSerialized which formats 
events as serialized objects.</action>
                <action date="2011-10-23" type="fix" issue="LOG4PHP-159" 
dev="Ivan Habunek" due-to="Justin Cherniak" due-to-email="justin dot cherniak 
at gmail dot com">Appenders do not close gracefully if a fatal error 
occurs.</action>
                <action date="2011-10-15" type="update" issue="LOG4PHP-152" 
dev="Ivan Habunek">A rewrite of the configurator.</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=1210109&r1=1210108&r2=1210109&view=diff
==============================================================================
--- logging/log4php/trunk/src/main/php/LoggerAppender.php (original)
+++ logging/log4php/trunk/src/main/php/LoggerAppender.php Sun Dec  4 13:26:46 
2011
@@ -79,8 +79,23 @@ abstract class LoggerAppender {
                // Closes the appender on shutdown. Better than a destructor 
because
                // it will be called even if a fatal error occurs (destructor 
won't).
                register_shutdown_function(array($this, 'close'));
+               
+               if ($this->requiresLayout) {
+                       $this->layout = $this->getDefaultLayout();
+               }
        }
-
+       
+       /**
+        * Returns the default layout for this appender. Can be overriden by 
+        * derived appenders.
+        * 
+        * @return LoggerLayout
+        */
+       public function getDefaultLayout()
+       {
+               return new LoggerLayoutSimple();
+       }
+       
        /**
         * Adds a filter to the end of the filter chain.
         * @param LoggerFilter $filter add a new LoggerFilter

Modified: logging/log4php/trunk/src/test/php/LoggerAppenderTest.php
URL: 
http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/LoggerAppenderTest.php?rev=1210109&r1=1210108&r2=1210109&view=diff
==============================================================================
--- logging/log4php/trunk/src/test/php/LoggerAppenderTest.php (original)
+++ logging/log4php/trunk/src/test/php/LoggerAppenderTest.php Sun Dec  4 
13:26:46 2011
@@ -146,4 +146,28 @@ class LoggerAppenderTest extends PHPUnit
                $nullfilter = $appender->getFilter();
                self::assertNull($nullfilter);
     }
+    
+    public function testInstanciateWithLayout() {
+       $appender = new LoggerAppenderEcho("LoggerAppenderTest");
+       
+       $expected = "LoggerLayoutSimple";
+       $actual = $appender->getLayout();
+       $this->assertInstanceof($expected, $actual);
+    }
+    
+    public function testOverwriteLayout() {
+       $layout = new LoggerLayoutSimple();
+       $appender = new LoggerAppenderEcho("LoggerAppenderTest");
+       $appender->setLayout($layout);          
+       
+       $actual = $appender->getLayout();
+       $this->assertEquals($layout, $actual);
+    }
+
+    public function testRequiresNoLayout() {
+       $appender = new LoggerAppenderNull("LoggerAppenderTest");
+               
+       $actual = $appender->getLayout();
+       $this->assertNull($actual);
+    }    
 }


Reply via email to