/** * Add a {@link LoggerAppenderConsole} that uses * the {@link LoggerLayoutTTCC} to the root category. * * @param string $url not used here * @static */ function configure($url = null) { $root =& LoggerManager::getRootLogger(); $appender =& LoggerAppender::singleton('A1', 'LoggerAppenderConsole'); $layout = LoggerLayout::factory('LoggerLayoutTTCC'); $appender->setLayout($layout); $root->addAppender($appender); }
/** * @param array $props array of properties * @param string $appenderName * @return LoggerAppender */ function &parseAppender($props, $appenderName) { $appender =& LoggerAppender::singleton($appenderName); if ($appender !== null) { LoggerLog::debug("LoggerPropertyConfigurator::parseAppender() " . "Appender [{$appenderName}] was already parsed."); return $appender; } // Appender was not previously initialized. $prefix = LOG4PHP_LOGGER_PROPERTY_CONFIGURATOR_APPENDER_PREFIX . $appenderName; $layoutPrefix = $prefix . ".layout"; $appenderClass = @$props[$prefix]; if (!empty($appenderClass)) { $appender =& LoggerAppender::singleton($appenderName, $appenderClass); if ($appender === null) { LoggerLog::warn("LoggerPropertyConfigurator::parseAppender() " . "Could not instantiate appender named [{$appenderName}]."); return null; } } else { LoggerLog::warn("LoggerPropertyConfigurator::parseAppender() " . "Could not instantiate appender named [{$appenderName}] with null className."); return null; } $appender->setName($appenderName); if ($appender->requiresLayout()) { LoggerLog::debug("LoggerPropertyConfigurator::parseAppender() " . "Parsing layout section for [{$appenderName}]."); $layoutClass = @$props[$layoutPrefix]; $layoutClass = LoggerOptionConverter::substVars($layoutClass, $props); if (empty($layoutClass)) { LoggerLog::warn("LoggerPropertyConfigurator::parseAppender() " . "layout class is empty in '{$layoutPrefix}'. Using Simple layout"); $layout = LoggerLayout::factory('LoggerLayoutSimple'); } else { $layout = LoggerLayout::factory($layoutClass); if ($layout === null) { LoggerLog::warn("LoggerPropertyConfigurator::parseAppender() " . "cannot create layout '{$layoutClass}'. Using Simple layout"); $layout = LoggerLayout::factory('LoggerLayoutSimple'); } } LoggerLog::debug("LoggerPropertyConfigurator::parseAppender() " . "Parsing layout options for [{$appenderName}]."); LoggerPropertySetter::setPropertiesByObject($layout, $props, $layoutPrefix . "."); LoggerLog::debug("LoggerPropertyConfigurator::parseAppender() " . "End Parsing layout options for [{$appenderName}]."); $appender->setLayout($layout); } LoggerPropertySetter::setPropertiesByObject($appender, $props, $prefix . "."); LoggerLog::debug("LoggerPropertyConfigurator::parseAppender() " . "Parsed [{$appenderName}] options."); return $appender; }
/** * Create a socket connection using defined parameters */ function activateOptions() { LoggerLog::debug("LoggerAppenderSocket::activateOptions() creating a socket..."); $errno = 0; $errstr = ''; $this->sp = @fsockopen($this->getRemoteHost(), $this->getPort(), $errno, $errstr, $this->getTimeout()); if ($errno) { LoggerLog::debug("LoggerAppenderSocket::activateOptions() socket error [{$errno}] {$errstr}"); $this->closed = true; } else { LoggerLog::debug("LoggerAppenderSocket::activateOptions() socket created [" . $this->sp . "]"); if ($this->getUseXml()) { $this->xmlLayout = LoggerLayout::factory('LoggerXmlLayout'); if ($this->xmlLayout === null) { LoggerLog::debug("LoggerAppenderSocket::activateOptions() useXml is true but layout is null"); $this->setUseXml(false); } else { $this->xmlLayout->setLocationInfo($this->getLocationInfo()); $this->xmlLayout->setLog4jNamespace($this->getLog4jNamespace()); $this->xmlLayout->activateOptions(); } } $this->closed = false; } }
public function activateOptions() { $this->layout = LoggerLayout::factory('LoggerLayoutTTCC'); $this->closed = false; }
/** * Setup db connection. * Based on defined options, this method connects to db defined in {@link $dsn} * and creates a {@link $table} table if {@link $createTable} is true. * @return boolean true if all ok. */ function activateOptions() { $this->db = DB::connect($this->dsn); if (DB::isError($this->db)) { LoggerLog::debug("LoggerAppenderDb::activateOptions() DB Connect Error [" . $this->db->getMessage() . "]"); $this->db = null; $this->closed = true; $this->canAppend = false; } else { $this->layout = LoggerLayout::factory('LoggerPatternLayout'); $this->layout->setConversionPattern($this->getSql()); // test if log table exists $tableInfo = $this->db->tableInfo($this->table, $mode = null); if (DB::isError($tableInfo) and $this->getCreateTable()) { $query = "CREATE TABLE {$this->table} (timestamp varchar(32),logger varchar(32),level varchar(32),message varchar(64),thread varchar(32),file varchar(64),line varchar(4) );"; LoggerLog::debug("LoggerAppenderDb::activateOptions() creating table '{$this->table}'... using sql='{$query}'"); $result = $this->db->query($query); if (DB::isError($result)) { LoggerLog::debug("LoggerAppenderDb::activateOptions() error while creating '{$this->table}'. Error is " . $result->getMessage()); $this->closed = true; $this->canAppend = false; return; } } $this->canAppend = true; $this->closed = false; } }
/** * Setup db connection. * Based on defined options, this method connects to db defined in {@link $dsn} * and creates a {@link $table} table if {@link $createTable} is true. * @return boolean true if all ok. */ function activateOptions() { $this->db =& ADONewConnection($this->type); if (!$this->db->PConnect($this->host, $this->user, $this->password, $this->database)) { LoggerLog::debug("LoggerAppenderAdodb::activateOptions() DB Connect Error [" . $this->db->ErrorMsg() . "]"); $this->db = null; $this->closed = true; $this->canAppend = false; return; } $this->layout = LoggerLayout::factory('LoggerPatternLayout'); $this->layout->setConversionPattern($this->getSql()); // test if log table exists $sql = 'select * from ' . $this->table . ' where 1 = 0'; $dbrs = $this->db->Execute($sql); if ($dbrs == false and $this->getCreateTable()) { $query = "CREATE TABLE {$this->table} (timestamp varchar(32),logger varchar(32),level varchar(32),message varchar(64),thread varchar(32),file varchar(64),line varchar(4) );"; LoggerLog::debug("LoggerAppenderAdodb::activateOptions() creating table '{$this->table}'... using sql='{$query}'"); $result = $this->db->Execute($query); if (!$result) { LoggerLog::debug("LoggerAppenderAdodb::activateOptions() error while creating '{$this->table}'. Error is " . $this->db->ErrorMsg()); $this->canAppend = false; return; } } $this->canAppend = true; }
/** * @param mixed $parser * @param string $tag */ function tagClose($parser, $tag) { switch ($tag) { case 'CONFIGURATION': case LOG4PHP_LOGGER_DOM_CONFIGURATOR_XMLNS . ':CONFIGURATION': LoggerLog::debug("LoggerDOMConfigurator::tagClose() CONFIGURATION"); break; case 'APPENDER': case LOG4PHP_LOGGER_DOM_CONFIGURATOR_XMLNS . ':APPENDER': LoggerLog::debug("LoggerDOMConfigurator::tagClose() APPENDER"); if ($this->appender !== null) { if ($this->appender->requiresLayout() and $this->appender->layout === null) { $appenderName = $this->appender->getName(); LoggerLog::warn("LoggerDOMConfigurator::tagClose() APPENDER. " . "'{$appenderName}' requires a layout that is not defined. " . "Using a simple layout"); $this->appender->setLayout(LoggerLayout::factory('LoggerLayoutSimple')); } $this->appender->activateOptions(); } array_pop($this->state); break; case 'FILTER': case LOG4PHP_LOGGER_DOM_CONFIGURATOR_XMLNS . ':FILTER': LoggerLog::debug("LoggerDOMConfigurator::tagClose() FILTER"); if ($this->filter !== null) { $this->filter->activateOptions(); $this->appender->addFilter($this->filter); $this->filter = null; } array_pop($this->state); break; case 'LAYOUT': case LOG4PHP_LOGGER_DOM_CONFIGURATOR_XMLNS . ':LAYOUT': LoggerLog::debug("LoggerDOMConfigurator::tagClose() LAYOUT"); if ($this->appender !== null and $this->layout !== null and $this->appender->requiresLayout()) { $this->layout->activateOptions(); $this->appender->setLayout($this->layout); $this->layout = null; } array_pop($this->state); break; case 'LOGGER': case LOG4PHP_LOGGER_DOM_CONFIGURATOR_XMLNS . ':LOGGER': LoggerLog::debug("LoggerDOMConfigurator::tagClose() LOGGER"); array_pop($this->state); break; case 'ROOT': case LOG4PHP_LOGGER_DOM_CONFIGURATOR_XMLNS . ':ROOT': LoggerLog::debug("LoggerDOMConfigurator::tagClose() ROOT"); array_pop($this->state); break; } }