loggermanager.php.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 259 行

SVN-BASE
259
字号
<?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. * *  * @package log4php *//** * LOG4PHP_DIR points to the log4php root directory. * * If not defined it will be set automatically when the first package classfile  * is included *  * @var string  */if (!defined('LOG4PHP_DIR')) define('LOG4PHP_DIR', dirname(__FILE__));require_once(LOG4PHP_DIR . '/LoggerHierarchy.php');/** * Use the LoggerManager to get Logger instances. * * @author  Marco Vassura * @version $Revision: 635069 $ * @package log4php * @see Logger * @todo create a configurator selector   */class LoggerManager {    /**     * check if a given logger exists.     *      * @param string $name logger name      * @static     * @return boolean     */    public static function exists($name)    {        return self::getLoggerRepository()->exists($name);    }    /**     * Returns an array this whole Logger instances.     *      * @static     * @see Logger     * @return array     */    public static function getCurrentLoggers()    {        return self::getLoggerRepository()->getCurrentLoggers();    }        /**     * Returns the root logger.     *      * @static     * @return object     * @see LoggerRoot     */    public static function getRootLogger()    {        return self::getLoggerRepository()->getRootLogger();    }        /**     * Returns the specified Logger.     *      * @param string $name logger name     * @param LoggerFactory $factory a {@link LoggerFactory} instance or null     * @static     * @return Logger     */    public static function getLogger($name, $factory = null)    {        return self::getLoggerRepository()->getLogger($name, $factory);    }        /**     * Returns the LoggerHierarchy.     *      * @static     * @return LoggerHierarchy     */    public static function getLoggerRepository()    {        return LoggerHierarchy::singleton();        }        /**     * Destroy loggers object tree.     *      * @static     * @return boolean      */    public static function resetConfiguration()    {        return self::getLoggerRepository()->resetConfiguration();        }        /**     * Does nothing.     * @static     */    public static function setRepositorySelector($selector, $guard)    {        return;    }        /**     * Safely close all appenders.     * @static     */    public static function shutdown()    {        return self::getLoggerRepository()->shutdown();        }}// ---------------------------------------------------------------------------// ---------------------------------------------------------------------------// ---------------------------------------------------------------------------if (!defined('LOG4PHP_DEFAULT_INIT_OVERRIDE')) {    if (isset($_ENV['log4php.defaultInitOverride'])) {        /**         * @ignore         */        define('LOG4PHP_DEFAULT_INIT_OVERRIDE',             LoggerOptionConverter::toBoolean($_ENV['log4php.defaultInitOverride'], false)        );    } elseif (isset($GLOBALS['log4php.defaultInitOverride'])) {        /**         * @ignore         */        define('LOG4PHP_DEFAULT_INIT_OVERRIDE',             LoggerOptionConverter::toBoolean($GLOBALS['log4php.defaultInitOverride'], false)        );    } else {        /**         * Controls init execution         *         * With this constant users can skip the default init procedure that is         * called when this file is included.         *         * <p>If it is not user defined, log4php tries to autoconfigure using (in order):</p>         *         * - the <code>$_ENV['log4php.defaultInitOverride']</code> variable.         * - the <code>$GLOBALS['log4php.defaultInitOverride']</code> global variable.         * - defaults to <i>false</i>         *         * @var boolean         */        define('LOG4PHP_DEFAULT_INIT_OVERRIDE', false);    }}if (!defined('LOG4PHP_CONFIGURATION')) {    if (isset($_ENV['log4php.configuration'])) {        /**         * @ignore         */        define('LOG4PHP_CONFIGURATION', trim($_ENV['log4php.configuration']));    } else {        /**         * Configuration file.         *         * <p>This constant tells configurator classes where the configuration         * file is located.</p>         * <p>If not set by user, log4php tries to set it automatically using          * (in order):</p>         *         * - the <code>$_ENV['log4php.configuration']</code> enviroment variable.         * - defaults to 'log4php.properties'.         *         * @var string         */        define('LOG4PHP_CONFIGURATION', 'log4php.properties');    }}if (!defined('LOG4PHP_CONFIGURATOR_CLASS')) {    if ( strtolower(substr( LOG4PHP_CONFIGURATION, -4 )) == '.xml') {         /**         * @ignore         */        define('LOG4PHP_CONFIGURATOR_CLASS', LOG4PHP_DIR . '/xml/LoggerDOMConfigurator');    } else {        /**         * Holds the configurator class name.         *         * <p>This constant is set with the fullname (path included but non the          * .php extension) of the configurator class that init procedure will use.</p>         * <p>If not set by user, log4php tries to set it automatically.</p>         * <p>If {@link LOG4PHP_CONFIGURATION} has '.xml' extension set the          * constants to '{@link LOG4PHP_DIR}/xml/{@link LoggerDOMConfigurator}'.</p>         * <p>Otherwise set the constants to          * '{@link LOG4PHP_DIR}/{@link LoggerPropertyConfigurator}'.</p>         *         * <p><b>Security Note</b>: classfile pointed by this constant will be brutally         * included with a:         * <code>@include_once(LOG4PHP_CONFIGURATOR_CLASS . ".php");</code></p>         *         * @var string         */        define('LOG4PHP_CONFIGURATOR_CLASS', LOG4PHP_DIR . '/LoggerPropertyConfigurator');    }}if (!LOG4PHP_DEFAULT_INIT_OVERRIDE) {    if (!LoggerManagerDefaultInit())        LoggerLog::warn("LOG4PHP main() Default Init failed.");}/** * Default init procedure. * * <p>This procedure tries to configure the {@link LoggerHierarchy} using the * configurator class defined via {@link LOG4PHP_CONFIGURATOR_CLASS} that tries * to load the configurator file defined in {@link LOG4PHP_CONFIGURATION}. * If something goes wrong a warn is raised.</p> * <p>Users can skip this procedure using {@link LOG4PHP_DEFAULT_INIT_OVERRIDE} * constant.</p>  * * @return boolean */function LoggerManagerDefaultInit(){    $configuratorClass = basename(LOG4PHP_CONFIGURATOR_CLASS);    if (!class_exists($configuratorClass)) {        include_once(LOG4PHP_CONFIGURATOR_CLASS . ".php");    }    if (class_exists($configuratorClass)) {                return call_user_func(array($configuratorClass, 'configure'), LOG4PHP_CONFIGURATION);             } else {        LoggerLog::warn("LoggerManagerDefaultInit() Configurator '{$configuratorClass}' doesnt exists");        return false;    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?