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 ch...@apache.org on 2009/10/06 21:02:36 UTC

svn commit: r822432 - in /incubator/log4php/trunk/src: examples/php/ examples/resources/ main/php/renderers/ site/apt/docs/

Author: chammers
Date: Tue Oct  6 19:02:35 2009
New Revision: 822432

URL: http://svn.apache.org/viewvc?rev=822432&view=rev
Log:
* Examples for the various Renderer classes.
* Renamed old examples to renderer_*
* Linked examples to renderer.apt and classes' phpdoc
* No code change

Added:
    incubator/log4php/trunk/src/examples/php/renderer_default.php
    incubator/log4php/trunk/src/examples/php/renderer_map.php
    incubator/log4php/trunk/src/examples/resources/renderer_default.properties
    incubator/log4php/trunk/src/examples/resources/renderer_map.properties
Modified:
    incubator/log4php/trunk/src/main/php/renderers/LoggerRendererDefault.php
    incubator/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php
    incubator/log4php/trunk/src/main/php/renderers/LoggerRendererObject.php
    incubator/log4php/trunk/src/site/apt/docs/renderer.apt

Added: incubator/log4php/trunk/src/examples/php/renderer_default.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/examples/php/renderer_default.php?rev=822432&view=auto
==============================================================================
--- incubator/log4php/trunk/src/examples/php/renderer_default.php (added)
+++ incubator/log4php/trunk/src/examples/php/renderer_default.php Tue Oct  6 19:02:35 2009
@@ -0,0 +1,20 @@
+<?php
+// START SNIPPET: doxia
+require_once dirname(__FILE__).'/../../main/php/Logger.php';
+Logger::configure(dirname(__FILE__).'/../resources/renderer_default.properties');
+
+class Person {
+    public $firstName = 'John';
+    public $lastName = 'Doe';
+
+    public function __toString() {
+        return $this->lastName . ', ' . $this->firstName;
+    }
+}
+
+$person = new Person();
+
+$logger = Logger::getRootLogger();
+$logger->debug("Now comes the current MyClass object:");
+$logger->debug($person);
+// END SNIPPET: doxia

Added: incubator/log4php/trunk/src/examples/php/renderer_map.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/examples/php/renderer_map.php?rev=822432&view=auto
==============================================================================
--- incubator/log4php/trunk/src/examples/php/renderer_map.php (added)
+++ incubator/log4php/trunk/src/examples/php/renderer_map.php Tue Oct  6 19:02:35 2009
@@ -0,0 +1,22 @@
+<?php
+// START SNIPPET: doxia
+require_once dirname(__FILE__).'/../../main/php/Logger.php';
+Logger::configure(dirname(__FILE__).'/../resources/renderer_map.properties');
+
+class Person {
+    public $firstName = 'John';
+    public $lastName = 'Doe';
+}
+
+class PersonRenderer implements LoggerRendererObject {
+    public function render($o) {
+        return $o->lastName.', '.$o->firstName;
+    }
+}
+
+$person = new Person();
+
+$logger = Logger::getRootLogger();
+$logger->debug("Now comes the current MyClass object:");
+$logger->debug($person);
+// END SNIPPET: doxia

Added: incubator/log4php/trunk/src/examples/resources/renderer_default.properties
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/examples/resources/renderer_default.properties?rev=822432&view=auto
==============================================================================
--- incubator/log4php/trunk/src/examples/resources/renderer_default.properties (added)
+++ incubator/log4php/trunk/src/examples/resources/renderer_default.properties Tue Oct  6 19:02:35 2009
@@ -0,0 +1,5 @@
+; START SNIPPET: doxia
+log4php.appender.default = LoggerAppenderEcho
+log4php.appender.default.layout = LoggerLayoutSimple
+log4php.rootLogger = DEBUG, default
+; END SNIPPET: doxia

Added: incubator/log4php/trunk/src/examples/resources/renderer_map.properties
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/examples/resources/renderer_map.properties?rev=822432&view=auto
==============================================================================
--- incubator/log4php/trunk/src/examples/resources/renderer_map.properties (added)
+++ incubator/log4php/trunk/src/examples/resources/renderer_map.properties Tue Oct  6 19:02:35 2009
@@ -0,0 +1,7 @@
+; START SNIPPET: doxia
+log4php.renderer.Person = PersonRenderer
+
+log4php.appender.default = LoggerAppenderEcho
+log4php.appender.default.layout = LoggerLayoutSimple
+log4php.rootLogger = DEBUG, default
+; END SNIPPET: doxia

Modified: incubator/log4php/trunk/src/main/php/renderers/LoggerRendererDefault.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/renderers/LoggerRendererDefault.php?rev=822432&r1=822431&r2=822432&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/renderers/LoggerRendererDefault.php (original)
+++ incubator/log4php/trunk/src/main/php/renderers/LoggerRendererDefault.php Tue Oct  6 19:02:35 2009
@@ -15,10 +15,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
+ * @package log4php
  */
 
 /**
- * The default Renderer renders objects by type casting
+ * The default Renderer renders objects by type casting.
+ * 
+ * Example:
+ * 
+ * {@example ../../examples/php/renderer_default.php}<br>
+ * {@example ../../examples/resources/renderer_default.properties}<br>
+ * <pre>
+ * DEBUG - Now comes the current MyClass object:
+ * DEBUG - Person::__set_state(array(
+ *  'firstName' => 'John',
+ *  'lastName' => 'Doe',
+ * ))
+ * </pre>
  *
  * @package log4php
  * @subpackage renderers

Modified: incubator/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php?rev=822432&r1=822431&r2=822432&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php (original)
+++ incubator/log4php/trunk/src/main/php/renderers/LoggerRendererMap.php Tue Oct  6 19:02:35 2009
@@ -15,11 +15,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
+ * @package log4php
  */
 
 /**
- * Map class objects to an {@link LoggerRendererObject}.
+ * Log objects using customized renderers that implement {@link LoggerRendererObject}.
  *
+ * Example:
+ * {@example ../../examples/php/renderer_map.php}<br>
+ * {@example ../../examples/resources/renderer_map.properties}<br>
+ * <pre>
+ * DEBUG - Now comes the current MyClass object:
+ * DEBUG - Doe, John
+ * </pre>
+ * 
  * @version $Revision$
  * @package log4php
  * @subpackage renderers

Modified: incubator/log4php/trunk/src/main/php/renderers/LoggerRendererObject.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/renderers/LoggerRendererObject.php?rev=822432&r1=822431&r2=822432&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/renderers/LoggerRendererObject.php (original)
+++ incubator/log4php/trunk/src/main/php/renderers/LoggerRendererObject.php Tue Oct  6 19:02:35 2009
@@ -15,15 +15,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
+ * @package log4php
  */
 
 /**
  * Subclass this abstract class in order to render objects as strings.
  *
+ * Implement this interface in order to render objects as strings using {@link LoggerRendererMap}.
+ *
+ * Example:
+ * {@example ../../examples/php/renderer_map.php}<br>
+ * {@example ../../examples/resources/renderer_map.properties}<br>
+ * <pre>
+ * DEBUG - Now comes the current MyClass object:
+ * DEBUG - Doe, John
+ * </pre>
+ *
  * @version $Revision$
  * @package log4php
  * @subpackage renderers
- * @abstract
  * @since 0.3
  */
 interface LoggerRendererObject {

Modified: incubator/log4php/trunk/src/site/apt/docs/renderer.apt
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/site/apt/docs/renderer.apt?rev=822432&r1=822431&r2=822432&view=diff
==============================================================================
--- incubator/log4php/trunk/src/site/apt/docs/renderer.apt (original)
+++ incubator/log4php/trunk/src/site/apt/docs/renderer.apt Tue Oct  6 19:02:35 2009
@@ -20,51 +20,43 @@
 
 Apache Log4php Renderer
 
-  Just as importantly, log4php will render the content of the log message according
-  to user specified criteria. For example, if you frequently need to log Oranges,
-  an object type used in your current project, then you can register an OrangeRenderer
-  that will be invoked whenever an orange needs to be logged.
+  Log4php can not only log string messages but also objects which will be converted
+  to strings using either the default renderer or a customized render class. 
 
-  Object rendering follows the class hierarchy. For example, assuming oranges are fruits,
-  if you register an FruitRenderer, all fruits including oranges will be rendered
-  by the FruitRenderer, unless of course you registered an orange specific OrangeRenderer.
+  Example:
 
-  Object renderers have to implement the LoggerRendererObject interface.
-  
-  For example, this is a class from your app you want to render in a log message:
-  
-+--
-class Fruit {
-    public $test1 = 'test1';
-    public $test2 = 'test2';
-    public $test3 = 'test3';
-}
-+--
+%{snippet|id=doxia|file=src/examples/php/renderer_map.php}
 
-  You'll need to write a FruitRenderer, implementing the LoggerRendererObject interface.
+%{snippet|id=doxia|file=src/examples/resources/renderer_map.properties}
+
+  Will output the following (notice how $person shows up in the output):
 
 +--
-class FruitRenderer3 implements LoggerRendererObject {
-    public function render($o) {
-		return $o->test1.','.$o->test2.','.$o->test3;
-	}
-}
+  DEBUG - Now comes the current MyClass object:
+  DEBUG - Doe, John
 +--
 
-  After that, you have to configure it in Log4PHP. This can be done via properties file
-  and via XML file.
-  
-  Via Properties:
+  or the following if the default renderer were used:
   
 +--
-log4php.renderer.Fruit=FruitRenderer
+  DEBUG - Now comes the current MyClass object:
+  DEBUG - Person::__set_state(array(
+    'firstName' => 'John',
+    'lastName' => 'Doe',
+  ))
 +--
 
-  Via XML:
+  Object rendering follows the class hierarchy. For example, assuming oranges are fruits,
+  if you register an FruitRenderer, all fruits including oranges will be rendered
+  by the FruitRenderer, unless of course you registered an orange specific OrangeRenderer.
+
+  Object renderers have to implement the LoggerRendererObject interface.
+  
+  The XML configuration would look like this:
 
 +--
 <log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/">
-	<renderer renderedClass="Fruit2" renderingClass="FruitRenderer2" />
+	<renderer renderedClass="Person" renderingClass="PersonRenderer" />
     <appender threshold="WARN" name="default" class="LoggerAppenderEcho">
     ...
 +--