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">
...
+--