| Code Coverage
| Classes and Traits | Functions and Methods | Lines
Total |  | 0.00% | 0 / 1 |  | 16.67% | 1 / 6 | CRAP |  | 56.25% | 9 / 16
LoggerAppenderPool |  | 0.00% | 0 / 1 |  | 16.67% | 1 / 6 | 15.78 |  | 56.25% | 9 / 16
add(LoggerAppender $appender) |  | 0.00% | 0 / 1 | 3.10 |  | 77.78% | 7 / 9
get($name) |  | 0.00% | 0 / 1 | 6 |  | 0.00% | 0 / 1
delete($name) |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2
getAppenders() |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1
exists($name) |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 1
clear() |  | 100.00% | 1 / 1 | 1 |  | 100.00% | 2 / 2

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 | }