Overview

Packages

  • log4php
    • appenders
    • configurators
    • filters
    • helpers
    • layouts
    • pattern
    • renderers

Classes

  • Logger
  • LoggerAppender
  • LoggerAppenderPool
  • LoggerAutoloader
  • LoggerConfigurable
  • LoggerConfiguratorDefault
  • LoggerFilter
  • LoggerHierarchy
  • LoggerLayout
  • LoggerLevel
  • LoggerLocationInfo
  • LoggerLoggingEvent
  • LoggerMDC
  • LoggerNDC
  • LoggerReflectionUtils
  • LoggerRoot
  • LoggerThrowableInformation

Interfaces

  • LoggerConfigurator

Exceptions

  • LoggerException
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Licensed to the Apache Software Foundation (ASF) under one or more
 4:  * contributor license agreements. See the NOTICE file distributed with
 5:  * this work for additional information regarding copyright ownership.
 6:  * The ASF licenses this file to You under the Apache License, Version 2.0
 7:  * (the "License"); you may not use this file except in compliance with
 8:  * the License. You may obtain a copy of the License at
 9:  *
10:  *     http://www.apache.org/licenses/LICENSE-2.0
11:  *
12:  * Unless required by applicable law or agreed to in writing, software
13:  * distributed under the License is distributed on an "AS IS" BASIS,
14:  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15:  * See the License for the specific language governing permissions and
16:  * limitations under the License.
17:  *
18:  * @package log4php
19:  */
20: 
21: /**
22:  * Pool implmentation for LoggerAppender instances.
23:  * 
24:  * The pool is used when configuring log4php. First all appender instances 
25:  * are created in the pool. Afterward, they are linked to loggers, each 
26:  * appender can be linked to multiple loggers. This makes sure duplicate 
27:  * appenders are not created.
28:  *
29:  * @version $Revision: 1350602 $
30:  * @package log4php
31:  */
32: class LoggerAppenderPool {
33:     
34:     /** Holds appenders indexed by their name */
35:     public static $appenders =  array();
36: 
37:     /**
38:      * Adds an appender to the pool. 
39:      * The appender must be named for this operation. 
40:      * @param LoggerAppender $appender
41:      */
42:     public static function add(LoggerAppender $appender) {
43:         $name = $appender->getName();
44:         
45:         if(empty($name)) {
46:             trigger_error('log4php: Cannot add unnamed appender to pool.', E_USER_WARNING);
47:             return;
48:         }
49:         
50:         if (isset(self::$appenders[$name])) {
51:             trigger_error("log4php: Appender [$name] already exists in pool. Overwriting existing appender.", E_USER_WARNING);
52:         }
53:         
54:         self::$appenders[$name] = $appender;
55:     }
56:     
57:     /** 
58:      * Retrieves an appender from the pool by name. 
59:      * @param string $name Name of the appender to retrieve.
60:      * @return LoggerAppender The named appender or NULL if no such appender 
61:      *  exists in the pool.
62:      */
63:     public static function get($name) {
64:         return isset(self::$appenders[$name]) ? self::$appenders[$name] : null;
65:     }
66:     
67:     /**
68:     * Removes an appender from the pool by name.
69:     * @param string $name Name of the appender to remove.
70:     */
71:     public static function delete($name) {
72:         unset(self::$appenders[$name]);
73:     }
74:     
75:     /**
76:      * Returns all appenders from the pool.
77:      * @return array Array of LoggerAppender objects.
78:      */
79:     public static function getAppenders() {
80:         return self::$appenders;
81:     }
82:     
83:     /**
84:      * Checks whether an appender exists in the pool.
85:      * @param string $name Name of the appender to look for.
86:      * @return boolean TRUE if the appender with the given name exists.
87:      */
88:     public static function exists($name) {
89:         return isset(self::$appenders[$name]);
90:     }
91: 
92:     /**
93:      * Clears all appenders from the pool.
94:      */
95:     public static function clear() {
96:          self::$appenders =  array();
97:     }
98: }
Apache log4php API documentation generated by ApiGen 2.8.0