LoggerAppenderEcho.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * log4php is a PHP port of the log4j java logging package.
  4. *
  5. * <p>This framework is based on log4j (see {@link http://jakarta.apache.org/log4j log4j} for details).</p>
  6. * <p>Design, strategies and part of the methods documentation are developed by log4j team
  7. * (Ceki Gülcü as log4j project founder and
  8. * {@link http://jakarta.apache.org/log4j/docs/contributors.html contributors}).</p>
  9. *
  10. * <p>PHP port, extensions and modifications by VxR. All rights reserved.<br>
  11. * For more information, please see {@link http://www.vxr.it/log4php/}.</p>
  12. *
  13. * <p>This software is published under the terms of the LGPL License
  14. * a copy of which has been included with this distribution in the LICENSE file.</p>
  15. *
  16. * @package log4php
  17. * @subpackage appenders
  18. */
  19. /**
  20. * @ignore
  21. */
  22. if (!defined('LOG4PHP_DIR')) define('LOG4PHP_DIR', dirname(__FILE__) . '/..');
  23. /**
  24. */
  25. require_once(LOG4PHP_DIR . '/LoggerAppenderSkeleton.php');
  26. require_once(LOG4PHP_DIR . '/LoggerLog.php');
  27. /**
  28. * LoggerAppenderEcho uses {@link PHP_MANUAL#echo echo} function to output events.
  29. *
  30. * <p>This appender requires a layout.</p>
  31. *
  32. * @author VxR <vxr@vxr.it>
  33. * @version $Revision: 1.2 $
  34. * @package log4php
  35. * @subpackage appenders
  36. */
  37. class LoggerAppenderEcho extends LoggerAppenderSkeleton {
  38. /**
  39. * @access private
  40. */
  41. var $requiresLayout = true;
  42. /**
  43. * @var boolean used internally to mark first append
  44. * @access private
  45. */
  46. var $firstAppend = true;
  47. /**
  48. * Constructor.
  49. *
  50. * @param string $name appender name
  51. */
  52. function LoggerAppenderEcho($name)
  53. {
  54. $this->LoggerAppenderSkeleton($name);
  55. }
  56. function activateOptions()
  57. {
  58. return;
  59. }
  60. function close()
  61. {
  62. if (!$this->firstAppend)
  63. echo $this->layout->getFooter();
  64. $this->closed = true;
  65. }
  66. function append($event)
  67. {
  68. LoggerLog::debug("LoggerAppenderEcho::append()");
  69. if ($this->layout !== null) {
  70. if ($this->firstAppend) {
  71. echo $this->layout->getHeader();
  72. $this->firstAppend = false;
  73. }
  74. echo $this->layout->format($event);
  75. }
  76. flush();
  77. }
  78. }
  79. ?>