diff --git a/library/log4php/appenders/LoggerAppenderEcho.php b/library/log4php/appenders/LoggerAppenderEcho.php new file mode 100644 --- /dev/null +++ b/library/log4php/appenders/LoggerAppenderEcho.php @@ -0,0 +1,88 @@ + element will be inserted + * before each line break in the logged message. Default is false. + * + * @version $Revision: 1337820 $ + * @package log4php + * @subpackage appenders + * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 + * @link http://logging.apache.org/log4php/docs/appenders/echo.html Appender documentation + */ +class LoggerAppenderEcho extends LoggerAppender { + /** + * Used to mark first append. Set to false after first append. + * @var boolean + */ + protected $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 + */ + protected $htmlLineBreaks = 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; + } + } + + /** + * Sets the 'htmlLineBreaks' parameter. + * @param boolean $value + */ + public function setHtmlLineBreaks($value) { + $this->setBoolean('htmlLineBreaks', $value); + } + + /** + * Returns the 'htmlLineBreaks' parameter. + * @returns boolean + */ + public function getHtmlLineBreaks() { + return $this->htmlLineBreaks; + } +} +