source: branches/feature-module-paygent/data/downloads/module/mdl_paygent/log4php/LoggerManager.php @ 15162

Revision 15162, 8.0 KB checked in by naka, 17 years ago (diff)

ペイジェント決済モジュール

Line 
1<?php
2/**
3 * log4php is a PHP port of the log4j java logging package.
4 *
5 * <p>This framework is based on log4j (see {@link http://jakarta.apache.org/log4j log4j} for details).</p>
6 * <p>Design, strategies and part of the methods documentation are developed by log4j team
7 * (Ceki Gülcü as log4j project founder and
8 * {@link http://jakarta.apache.org/log4j/docs/contributors.html contributors}).</p>
9 *
10 * <p>PHP port, extensions and modifications by VxR. All rights reserved.<br>
11 * For more information, please see {@link http://www.vxr.it/log4php/}.</p>
12 *
13 * <p>This software is published under the terms of the LGPL License
14 * a copy of which has been included with this distribution in the LICENSE file.</p>
15 *
16 * @package log4php
17 */
18
19/**
20 * LOG4PHP_DIR points to the log4php root directory.
21 *
22 * If not defined it will be set automatically when the first package classfile
23 * is included
24 *
25 * @var string
26 */
27if (!defined('LOG4PHP_DIR')) define('LOG4PHP_DIR', dirname(__FILE__));
28
29require_once(LOG4PHP_DIR . '/LoggerHierarchy.php');
30
31/**
32 * Use the LoggerManager to get Logger instances.
33 *
34 * @author VxR <vxr@vxr.it>
35 * @version $Revision: 1.18 $
36 * @package log4php
37 * @see Logger
38 * @todo create a configurator selector 
39 */
40class LoggerManager {
41
42    /**
43     * check if a given logger exists.
44     *
45     * @param string $name logger name
46     * @static
47     * @return boolean
48     */
49    function exists($name)
50    {
51        $repository =& LoggerManager::getLoggerRepository();
52        return $repository->exists($name);
53    }
54
55    /**
56     * Returns an array this whole Logger instances.
57     *
58     * @static
59     * @see Logger
60     * @return array
61     */
62    function getCurrentLoggers()
63    {
64        $repository =& LoggerManager::getLoggerRepository();
65        return $repository->getCurrentLoggers();
66    }
67   
68    /**
69     * Returns the root logger.
70     *
71     * @static
72     * @return object
73     * @see LoggerRoot
74     */
75    function &getRootLogger()
76    {
77        $repository =& LoggerManager::getLoggerRepository();
78        return $repository->getRootLogger();
79    }
80   
81    /**
82     * Returns the specified Logger.
83     *
84     * @param string $name logger name
85     * @param LoggerFactory $factory a {@link LoggerFactory} instance or null
86     * @static
87     * @return Logger
88     */
89    function &getLogger($name, $factory = null)
90    {
91        $repository =& LoggerManager::getLoggerRepository();
92        return $repository->getLogger($name, $factory);
93    }
94   
95    /**
96     * Returns the LoggerHierarchy.
97     *
98     * @static
99     * @return LoggerHierarchy
100     */
101    function &getLoggerRepository()
102    {
103        return LoggerHierarchy::singleton();   
104    }
105   
106
107    /**
108     * Destroy loggers object tree.
109     *
110     * @static
111     * @return boolean
112     */
113    function resetConfiguration()
114    {
115        $repository =& LoggerManager::getLoggerRepository();   
116        return $repository->resetConfiguration();   
117    }
118   
119    /**
120     * Does nothing.
121     * @static
122     */
123    function setRepositorySelector($selector, $guard)
124    {
125        return;
126    }
127   
128    /**
129     * Safely close all appenders.
130     * @static
131     */
132    function shutdown()
133    {
134        $repository =& LoggerManager::getLoggerRepository();   
135        return $repository->shutdown();   
136    }
137}
138
139// ---------------------------------------------------------------------------
140// ---------------------------------------------------------------------------
141// ---------------------------------------------------------------------------
142
143if (!defined('LOG4PHP_DEFAULT_INIT_OVERRIDE')) {
144    if (isset($_ENV['log4php.defaultInitOverride'])) {
145        /**
146         * @ignore
147         */
148        define('LOG4PHP_DEFAULT_INIT_OVERRIDE',
149            LoggerOptionConverter::toBoolean($_ENV['log4php.defaultInitOverride'], false)
150        );
151    } elseif (isset($GLOBALS['log4php.defaultInitOverride'])) {
152        /**
153         * @ignore
154         */
155        define('LOG4PHP_DEFAULT_INIT_OVERRIDE',
156            LoggerOptionConverter::toBoolean($GLOBALS['log4php.defaultInitOverride'], false)
157        );
158    } else {
159        /**
160         * Controls init execution
161         *
162         * With this constant users can skip the default init procedure that is
163         * called when this file is included.
164         *
165         * <p>If it is not user defined, log4php tries to autoconfigure using (in order):</p>
166         *
167         * - the <code>$_ENV['log4php.defaultInitOverride']</code> variable.
168         * - the <code>$GLOBALS['log4php.defaultInitOverride']</code> global variable.
169         * - defaults to <i>false</i>
170         *
171         * @var boolean
172         */
173        define('LOG4PHP_DEFAULT_INIT_OVERRIDE', false);
174    }
175}
176
177if (!defined('LOG4PHP_CONFIGURATION')) {
178    if (isset($_ENV['log4php.configuration'])) {
179        /**
180         * @ignore
181         */
182        define('LOG4PHP_CONFIGURATION', trim($_ENV['log4php.configuration']));
183    } else {
184        /**
185         * Configuration file.
186         *
187         * <p>This constant tells configurator classes where the configuration
188         * file is located.</p>
189         * <p>If not set by user, log4php tries to set it automatically using
190         * (in order):</p>
191         *
192         * - the <code>$_ENV['log4php.configuration']</code> enviroment variable.
193         * - defaults to 'log4php.properties'.
194         *
195         * @var string
196         */
197        define('LOG4PHP_CONFIGURATION', 'C:\mydir\pdt\workspace\feature-module-paygent\data\downloads\module\mdl_paygent\log4php.properties');
198    }
199}
200
201if (!defined('LOG4PHP_CONFIGURATOR_CLASS')) {
202    if ( strtolower(substr( LOG4PHP_CONFIGURATION, -4 )) == '.xml') {
203        /**
204         * @ignore
205         */
206        define('LOG4PHP_CONFIGURATOR_CLASS', '/xml/LoggerDOMConfigurator');
207    } else {
208        /**
209         * Holds the configurator class name.
210         *
211         * <p>This constant is set with the fullname (path included but non the
212         * .php extension) of the configurator class that init procedure will use.</p>
213         * <p>If not set by user, log4php tries to set it automatically.</p>
214         * <p>If {@link LOG4PHP_CONFIGURATION} has '.xml' extension set the
215         * constants to '{@link LOG4PHP_DIR}/xml/{@link LoggerDOMConfigurator}'.</p>
216         * <p>Otherwise set the constants to
217         * '{@link LOG4PHP_DIR}/{@link LoggerPropertyConfigurator}'.</p>
218         *
219         * <p><b>Security Note</b>: classfile pointed by this constant will be brutally
220         * included with a:
221         * <code>@include_once(LOG4PHP_CONFIGURATOR_CLASS . ".php");</code></p>
222         *
223         * @var string
224         */
225        define('LOG4PHP_CONFIGURATOR_CLASS', LOG4PHP_DIR . '/LoggerPropertyConfigurator');
226    }
227}
228
229if (!LOG4PHP_DEFAULT_INIT_OVERRIDE) {
230    if (!LoggerManagerDefaultInit())
231        LoggerLog::warn("LOG4PHP main() Default Init failed.");
232}
233
234/**
235 * Default init procedure.
236 *
237 * <p>This procedure tries to configure the {@link LoggerHierarchy} using the
238 * configurator class defined via {@link LOG4PHP_CONFIGURATOR_CLASS} that tries
239 * to load the configurator file defined in {@link LOG4PHP_CONFIGURATION}.
240 * If something goes wrong a warn is raised.</p>
241 * <p>Users can skip this procedure using {@link LOG4PHP_DEFAULT_INIT_OVERRIDE}
242 * constant.</p>
243 *
244 * @return boolean
245 */
246function LoggerManagerDefaultInit()
247{
248    $configuratorClass = basename(LOG4PHP_CONFIGURATOR_CLASS);
249    if (!class_exists($configuratorClass)) {
250        @include_once(LOG4PHP_CONFIGURATOR_CLASS . ".php");
251    }
252    if (class_exists($configuratorClass)) {
253       
254        return call_user_func(array($configuratorClass, 'configure'), LOG4PHP_CONFIGURATION);         
255
256    } else {
257        LoggerLog::warn("LoggerManagerDefaultInit() Configurator '{$configuratorClass}' doesnt exists");
258        return false;
259    }
260}
261
262?>
Note: See TracBrowser for help on using the repository browser.