This appender requires a layout.
*
* An example php file:
*
* {@example ../../examples/php/appender_echo.php 19}
*
* An example configuration file:
*
* {@example ../../examples/resources/appender_echo.properties 18}
*
* The above example would print the following:
*
* Tue Sep 8 22:44:55 2009,812 [6783] DEBUG appender_echo - Hello World!
*
*
* @version $Revision$
* @package log4php
* @subpackage appenders
*/
class LoggerAppenderEcho extends LoggerAppender {
/** boolean used internally to mark first append */
private $firstAppend = true;
/**
* If set to true, a
element will be inserted before each line
* break in the logged message. Default value is false. @var boolean
*/
private $htmlLineBreaks = false;
public function __construct($name = '') {
parent::__construct($name);
$this->firstAppend = true;
}
public function __destruct() {
$this->close();
}
public function activateOptions() {
$this->closed = false;
}
public function close() {
if($this->closed != true) {
if(!$this->firstAppend) {
echo $this->layout->getFooter();
}
}
$this->closed = true;
}
public function append(LoggerLoggingEvent $event) {
if($this->layout !== null) {
if($this->firstAppend) {
echo $this->layout->getHeader();
$this->firstAppend = false;
}
$text = $this->layout->format($event);
if ($this->htmlLineBreaks) {
$text = nl2br($text);
}
echo $text;
}
}
public function setHtmlLineBreaks($value) {
$this->htmlLineBreaks = LoggerOptionConverter::toBoolean($value, false);
}
public function getHtmlLineBreaks() {
return $this->htmlLineBreaks;
}
}