123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- <?php
- if (!defined('LOG4PHP_DIR')) define('LOG4PHP_DIR', dirname(__FILE__));
-
- require_once(LOG4PHP_DIR . '/LoggerAppender.php');
- require_once(LOG4PHP_DIR . '/LoggerLog.php');
- require_once(LOG4PHP_DIR . '/helpers/LoggerOptionConverter.php');
- class LoggerAppenderSkeleton extends LoggerAppender {
-
- var $closed;
-
-
- var $errorHandler;
-
-
- var $headFilter = null;
-
-
- var $layout = null;
-
-
- var $name;
-
-
- var $tailFilter = null;
-
-
- var $threshold = null;
-
-
- var $requiresLayout = false;
-
-
-
- function LoggerAppenderSkeleton($name)
- {
- $this->name = $name;
- $this->clearFilters();
- }
-
- function addFilter($newFilter)
- {
- if($this->headFilter === null) {
- $this->headFilter = $newFilter;
- $this->tailFilter =& $this->headFilter;
- } else {
- $this->tailFilter->next = $newFilter;
- $this->tailFilter =& $this->tailFilter->next;
- }
- }
-
-
- function activateOptions()
- {
- }
-
-
- function append($event)
- {
-
- }
-
-
- function clearFilters()
- {
- unset($this->headFilter);
- unset($this->tailFilter);
- $this->headFilter = null;
- $this->tailFilter = null;
- }
-
-
- function close()
- {
-
- }
-
-
- function finalize()
- {
-
-
- if ($this->closed) return;
-
- LoggerLog::debug("LoggerAppenderSkeleton::finalize():name=[{$this->name}].");
-
- $this->close();
- }
-
-
- function &getErrorHandler()
- {
- return $this->errorHandler;
- }
-
-
- function &getFilter()
- {
- return $this->headFilter;
- }
-
- function &getFirstFilter()
- {
- return $this->headFilter;
- }
-
-
- function &getLayout()
- {
- return $this->layout;
- }
-
-
- function getName()
- {
- return $this->name;
- }
-
-
- function &getThreshold()
- {
- return $this->threshold;
- }
-
-
- function isAsSevereAsThreshold($priority)
- {
- if ($this->threshold === null)
- return true;
-
- return $priority->isGreaterOrEqual($this->getThreshold());
- }
-
-
- function doAppend($event)
- {
- LoggerLog::debug("LoggerAppenderSkeleton::doAppend()");
- if ($this->closed) {
- LoggerLog::debug("LoggerAppenderSkeleton::doAppend() Attempted to append to closed appender named [{$this->name}].");
- return;
- }
- if(!$this->isAsSevereAsThreshold($event->getLevel())) {
- LoggerLog::debug("LoggerAppenderSkeleton::doAppend() event level is less severe than threshold.");
- return;
- }
- $f = $this->getFirstFilter();
-
- while($f !== null) {
- switch ($f->decide($event)) {
- case LOG4PHP_LOGGER_FILTER_DENY: return;
- case LOG4PHP_LOGGER_FILTER_ACCEPT: return $this->append($event);
- case LOG4PHP_LOGGER_FILTER_NEUTRAL: $f = $f->next;
- }
- }
- $this->append($event);
- }
-
-
-
- function requiresLayout()
- {
- return $this->requiresLayout;
- }
-
-
- function setErrorHandler($errorHandler)
- {
- if($errorHandler == null) {
-
-
- LoggerLog::warn("You have tried to set a null error-handler.");
- } else {
- $this->errorHandler = $errorHandler;
- }
- }
-
-
- function setLayout($layout)
- {
- if ($this->requiresLayout())
- $this->layout = $layout;
- }
-
-
- function setName($name)
- {
- $this->name = $name;
- }
-
-
- function setThreshold($threshold)
- {
- if (is_string($threshold)) {
- $this->threshold = LoggerOptionConverter::toLevel($threshold, null);
- }elseif (is_a($threshold, 'loggerlevel')) {
- $this->threshold = $threshold;
- }
- }
-
-
- function __sleep()
- {
- $this->finalize();
- return array_keys(get_object_vars($this));
- }
-
-
- function __wakeup()
- {
- $this->activateOptions();
- }
-
- }
- ?>
|