You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by gr...@apache.org on 2009/08/19 08:51:48 UTC
svn commit: r805681 - in /incubator/log4php/trunk/src/main/php: ./
appenders/ configurators/
Author: grobmeier
Date: Wed Aug 19 06:51:47 2009
New Revision: 805681
URL: http://svn.apache.org/viewvc?rev=805681&view=rev
Log:
extracted pool from LoggerAppender for better readability and possible reusability. Improved Appender instantiation
Added:
incubator/log4php/trunk/src/main/php/LoggerAppenderPool.php
Modified:
incubator/log4php/trunk/src/main/php/Logger.php
incubator/log4php/trunk/src/main/php/LoggerAppender.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderEcho.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderFile.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderNull.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPDO.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPhp.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderRollingFile.php
incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderSyslog.php
incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorIni.php
incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php
incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorXml.php
Modified: incubator/log4php/trunk/src/main/php/Logger.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/Logger.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/Logger.php (original)
+++ incubator/log4php/trunk/src/main/php/Logger.php Wed Aug 19 06:51:47 2009
@@ -65,6 +65,7 @@
'LoggerConfiguratorXml' => '/configurators/LoggerConfiguratorXml.php',
'LoggerRoot' => '/LoggerRoot.php',
'LoggerAppender' => '/LoggerAppender.php',
+ 'LoggerAppenderPool' => '/LoggerAppenderPool.php',
'LoggerAppenderAdodb' => '/appenders/LoggerAppenderAdodb.php',
'LoggerAppenderPDO' => '/appenders/LoggerAppenderPDO.php',
'LoggerAppenderConsole' => '/appenders/LoggerAppenderConsole.php',
Modified: incubator/log4php/trunk/src/main/php/LoggerAppender.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/LoggerAppender.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/LoggerAppender.php (original)
+++ incubator/log4php/trunk/src/main/php/LoggerAppender.php Wed Aug 19 06:51:47 2009
@@ -68,53 +68,12 @@
*
* @param string $name appender name
*/
- public function __construct($name) {
+ public function __construct($name = '') {
$this->name = $name;
$this->clearFilters();
}
/**
- * Factory
- *
- * @param string $name appender name
- * @param string $class create an instance of this appender class
- * @return LoggerAppender
- */
- public static function factory($name, $class) {
- $class = basename($class);
- if(!empty($class)) {
- return new $class($name);
- }
- return null;
- }
-
- /**
- * Singleton
- *
- * @param string $name appender name
- * @param string $class create or get a reference instance of this class
- * @return LoggerAppender
- */
- public static function singleton($name, $class = '') {
- static $instances;
-
- if(!empty($name)) {
- if(!isset($instances[$name])) {
- if(!empty($class)) {
- $appender = self::factory($name, $class);
- if($appender !== null) {
- $instances[$name] = $appender;
- return $instances[$name];
- }
- }
- return null;
- }
- return $instances[$name];
- }
- return null;
- }
-
- /**
* Add a filter to the end of the filter list.
*
* @param LoggerFilter $newFilter add a new LoggerFilter
Added: incubator/log4php/trunk/src/main/php/LoggerAppenderPool.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/LoggerAppenderPool.php?rev=805681&view=auto
==============================================================================
--- incubator/log4php/trunk/src/main/php/LoggerAppenderPool.php (added)
+++ incubator/log4php/trunk/src/main/php/LoggerAppenderPool.php Wed Aug 19 06:51:47 2009
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/**
+ * Pool implmentation for LoggerAppender instances
+ *
+ * @version $Revision: 795727 $
+ * @package log4php
+ */
+class LoggerAppenderPool {
+ /* Appender Pool */
+ public static $appenderPool = null;
+
+ /**
+ *
+ *
+ * @param string $name
+ * @param string $class
+ * @return LoggerAppender
+ */
+ public static function getAppenderFromPool($name, $class = '') {
+ if(isset(self::$appenderPool[$name])) {
+ return self::$appenderPool[$name];
+ }
+
+ if(empty($class)) {
+ return null;
+ }
+
+ $appender = LoggerReflectionUtils::createObject($class);
+ $appender->setName($name);
+ if($appender !== null) {
+ self::$appenderPool[$name] = $appender;
+ return self::$appenderPool[$name];
+ }
+ return null;
+ }
+}
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderEcho.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderEcho.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderEcho.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderEcho.php Wed Aug 19 06:51:47 2009
@@ -33,7 +33,7 @@
/** boolean used internally to mark first append */
private $firstAppend = true;
- public function __construct($name) {
+ public function __construct($name = '') {
parent::__construct($name);
$this->requiresLayout = true;
$this->firstAppend = true;
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderFile.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderFile.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderFile.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderFile.php Wed Aug 19 06:51:47 2009
@@ -45,7 +45,7 @@
*/
protected $fp = false;
- public function __construct($name) {
+ public function __construct($name = '') {
parent::__construct($name);
$this->requiresLayout = true;
}
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php Wed Aug 19 06:51:47 2009
@@ -58,7 +58,7 @@
*
* @param string $name appender name
*/
- public function __construct($name) {
+ public function __construct($name = '') {
parent::__construct($name);
$this->requiresLayout = true;
}
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMailEvent.php Wed Aug 19 06:51:47 2009
@@ -72,7 +72,7 @@
*
* @param string $name appender name
*/
- public function __construct($name) {
+ public function __construct($name = '') {
parent::__construct($name);
}
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderNull.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderNull.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderNull.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderNull.php Wed Aug 19 06:51:47 2009
@@ -31,10 +31,6 @@
protected $requiresLayout = false;
- public function __construct($name) {
- parent::__construct($name);
- }
-
public function activateOptions() {
$this->closed = false;
}
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPDO.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPDO.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPDO.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPDO.php Wed Aug 19 06:51:47 2009
@@ -57,7 +57,7 @@
* This apender doesn't require a layout.
* @param string $name appender name
*/
- public function __construct($name) {
+ public function __construct($name = '') {
parent::__construct($name);
$this->requiresLayout = false;
}
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPhp.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPhp.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPhp.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderPhp.php Wed Aug 19 06:51:47 2009
@@ -31,7 +31,7 @@
*/
class LoggerAppenderPhp extends LoggerAppender {
- public function __construct($name) {
+ public function __construct($name = '') {
parent::__construct($name);
$this->requiresLayout = true;
}
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderRollingFile.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderRollingFile.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderRollingFile.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderRollingFile.php Wed Aug 19 06:51:47 2009
@@ -70,15 +70,6 @@
private $expandedFileName = null;
/**
- * Constructor.
- *
- * @param string $name appender name
- */
- public function __construct($name) {
- parent::__construct($name);
- }
-
- /**
* Returns the value of the MaxBackupIndex option.
* @return integer
*/
Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderSyslog.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderSyslog.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderSyslog.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderSyslog.php Wed Aug 19 06:51:47 2009
@@ -73,7 +73,7 @@
*/
private $_overridePriority;
- public function __construct($name) {
+ public function __construct($name = '') {
parent::__construct($name);
$this->requiresLayout = true;
}
Modified: incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorIni.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorIni.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorIni.php (original)
+++ incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorIni.php Wed Aug 19 06:51:47 2009
@@ -413,8 +413,8 @@
}
}
- // Begin by removing all existing appenders.
- $logger->removeAllAppenders();
+ // TODO: removing should be done by the logger, if necessary and wanted
+ // $logger->removeAllAppenders();
while($appenderName = next($st)) {
$appenderName = trim($appenderName);
if(empty($appenderName)) {
@@ -434,25 +434,19 @@
* @return LoggerAppender
*/
private function parseAppender($props, $appenderName) {
- $appender = LoggerAppender::singleton($appenderName);
- if($appender !== null) {
- return $appender;
- }
- // Appender was not previously initialized.
+ $appender = LoggerAppenderPool::getAppenderFromPool($appenderName);
$prefix = self::APPENDER_PREFIX . $appenderName;
- $layoutPrefix = $prefix . ".layout";
- $appenderClass = @$props[$prefix];
- if(!empty($appenderClass)) {
- $appender = LoggerAppender::singleton($appenderName, $appenderClass);
+ if($appender === null) {
+ // Appender was not previously initialized.
+ $appenderClass = @$props[$prefix];
+ $appender = LoggerAppenderPool::getAppenderFromPool($appenderName, $appenderClass);
if($appender === null) {
return null;
}
- } else {
- return null;
}
- $appender->setName($appenderName);
if($appender->requiresLayout() ) {
+ $layoutPrefix = $prefix . ".layout";
$layoutClass = @$props[$layoutPrefix];
$layoutClass = LoggerOptionConverter::substVars($layoutClass, $props);
if(empty($layoutClass)) {
Modified: incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php (original)
+++ incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorPhp.php Wed Aug 19 06:51:47 2009
@@ -74,7 +74,7 @@
foreach($config['appenders'] as $appenderName => $appenderProperties) {
- $appender = LoggerAppender::singleton($appenderName, $appenderProperties['class']);
+ $appender = LoggerAppenderPool::getAppenderFromPool($appenderName, $appenderProperties['class']);
if($appender->requiresLayout()) {
@@ -114,7 +114,7 @@
$rootLogger->setLevel(LoggerOptionConverter::toLevel($config['rootLogger']['level'], LoggerLevel::getLevelDebug()));
if(isset($config['rootLogger']['appenders'])) {
foreach($config['rootLogger']['appenders'] as $appenderName) {
- $appender = LoggerAppender::singleton($appenderName);
+ $appender = LoggerAppenderPool::getAppenderFromPool($appenderName);
if($appender !== null) {
$rootLogger->addAppender($appender);
}
@@ -133,7 +133,7 @@
$logger->setLevel(LoggerOptionConverter::toLevel($loggerProperties['level'], LoggerLevel::getLevelDebug()));
if(isset($loggerProperties['appenders'])) {
foreach($loggerProperties['appenders'] as $appenderName) {
- $appender = LoggerAppender::singleton($appenderName);
+ $appender = LoggerAppenderPool::getAppenderFromPool($appenderName);
if($appender !== null) {
$logger->addAppender($appender);
}
Modified: incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorXml.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorXml.php?rev=805681&r1=805680&r2=805681&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorXml.php (original)
+++ incubator/log4php/trunk/src/main/php/configurators/LoggerConfiguratorXml.php Wed Aug 19 06:51:47 2009
@@ -218,7 +218,7 @@
$name = $this->subst(@$attribs['NAME']);
$class = $this->subst(@$attribs['CLASS']);
- $this->appender = LoggerAppender::singleton($name, $class);
+ $this->appender = LoggerAppenderPool::getAppenderFromPool($name, $class);
$this->state[] = self::APPENDER_STATE;
break;
@@ -229,7 +229,7 @@
if (isset($attribs['REF']) and !empty($attribs['REF'])) {
$appenderName = $this->subst($attribs['REF']);
- $appender = LoggerAppender::singleton($appenderName);
+ $appender = LoggerAppenderPool::getAppenderFromPool($appenderName);
if ($appender !== null) {
switch (end($this->state)) {
case self::LOGGER_STATE: