logger.php

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· PHP 代码 · 共 600 行 · 第 1/2 页

PHP
600
字号
    public function getInstance($name)
    {
        return LoggerManager::getLogger($name);
    }

    /**
     * Returns the assigned Level, if any, for this Category.
     * @return LoggerLevel or null
     */
    public function getLevel()
    {
        return $this->level;
    }

    /**
     * Get a Logger by name (Delegate to {@link LoggerManager})
     * @param string $name logger name
     * @param LoggerFactory $factory a {@link LoggerFactory} instance or null
     * @return Logger
     * @static
     */
    public function getLogger($name, $factory = null)
    {
        return LoggerManager::getLogger($name, $factory);
    }

    /**
     * Return the the repository where this Category is attached.
     * @return LoggerHierarchy
     */
    public function getLoggerRepository()
    {
        return $this->repository;
    }

    /**
     * Return the category name.
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Returns the parent of this category.
     * @return Logger
     */
    public function getParent()
    {
        return $this->parent;
    }

    /**
     * Please use getLevel() instead.
     * @deprecated
     */
    public function getPriority()
    {
        return $this->getLevel();
    }

    /**
     * Return the inherited ResourceBundle for this category.
     */
    public function getResourceBundle()
    {
        return;
    }

    /**
     * Returns the string resource corresponding to key in this category's inherited resource bundle.
     */
    public function getResourceBundleString($key)
    {
        return;
    }

    /**
     * Return the root of the default category hierarchy.
     * @return LoggerRoot
     */
    public function getRoot()
    {
        return LoggerManager::getRootLogger();
    }

    /**
     * get the Root Logger (Delegate to {@link LoggerManager})
     * @return LoggerRoot
     * @static
     */
    public function getRootLogger()
    {
        return LoggerManager::getRootLogger();
    }

    /**
     * Log a message object with the INFO Level.
     *
     * @param mixed $message message
     * @param mixed $caller caller object or caller string id
     */
    public function info($message, $caller = null)
    {
        $infoLevel = LoggerLevel::getLevelInfo();
        if ($this->repository->isDisabled($infoLevel)) {
            return;
        }
        if ($infoLevel->isGreaterOrEqual($this->getEffectiveLevel())) {
            $this->forcedLog($this->fqcn, $caller, $infoLevel, $message);
        }
    }

    /**
     * Is the appender passed as parameter attached to this category?
     *
     * @param LoggerAppender $appender
     */
    public function isAttached($appender)
    {
        return isset($this->aai[$appender->getName()]);
    }

    /**
     * Check whether this category is enabled for the DEBUG Level.
     * @return boolean
     */
    public function isDebugEnabled()
    {
        $debugLevel = LoggerLevel::getLevelDebug();
        if ($this->repository->isDisabled($debugLevel)) {
            return false;
        }
        return ($debugLevel->isGreaterOrEqual($this->getEffectiveLevel()));
    }

    /**
     * Check whether this category is enabled for a given Level passed as parameter.
     *
     * @param LoggerLevel level
     * @return boolean
     */
    public function isEnabledFor($level)
    {
        if ($this->repository->isDisabled($level)) {
            return false;
        }
        return (bool)($level->isGreaterOrEqual($this->getEffectiveLevel()));
    }

    /**
     * Check whether this category is enabled for the info Level.
     * @return boolean
     * @see LoggerLevel
     */
    public function isInfoEnabled()
    {
        $infoLevel = LoggerLevel::getLevelInfo();
        if ($this->repository->isDisabled($infoLevel)) {
            return false;
        }
        return ($infoLevel->isGreaterOrEqual($this->getEffectiveLevel()));
    }

    /**
     * Log a localized and parameterized message.
     */
    public function l7dlog($priority, $key, $params, $t)
    {
        return;
    }

    /**
     * This generic form is intended to be used by wrappers.
     *
     * @param LoggerLevel $priority a valid level
     * @param mixed $message message
     * @param mixed $caller caller object or caller string id
     */
    public function log($priority, $message, $caller = null)
    {
        if ($this->repository->isDisabled($priority)) {
            return;
        }
        if ($priority->isGreaterOrEqual($this->getEffectiveLevel())) {
            $this->forcedLog($this->fqcn, $caller, $priority, $message);
        }
    }

    /**
     * Remove all previously added appenders from this Category instance.
     */
    public function removeAllAppenders()
    {
        $appenderNames = array_keys($this->aai);
        $enumAppenders = sizeof($appenderNames);
        for ($i = 0; $i < $enumAppenders; $i++) {
            $this->removeAppender($appenderNames[$i]);
        }
    }

    /**
     * Remove the appender passed as parameter form the list of appenders.
     *
     * @param mixed $appender can be an appender name or a {@link LoggerAppender} object
     */
    public function removeAppender($appender)
    {
        if ($appender instanceof loggerappender) {
            $appender->close();
            unset($this->aai[$appender->getName()]);
        } elseif (is_string($appender) and isset($this->aai[$appender])) {
            $this->aai[$appender]->close();
            unset($this->aai[$appender]);
        }
    }

    /**
     * Set the additivity flag for this Category instance.
     *
     * @param boolean $additive
     */
    public function setAdditivity($additive)
    {
        $this->additive = (bool)$additive;
    }

    /**
     * @deprecated Please use {@link setLevel()} instead.
     * @see setLevel()
     */
    public function setPriority($priority)
    {
        $this->setLevel($priority);
    }

    /**
     * Only the Hierarchy class can set the hierarchy of a
     * category.
     *
     * @param LoggerHierarchy $repository
     */
    public function setHierarchy($repository)
    {
        $this->repository = $repository;
    }

    /**
     * Set the level of this Category.
     *
     * @param LoggerLevel $level a level string or a level constant
     */
    public function setLevel($level)
    {
        $this->level = $level;
    }

    public function setParent($logger) {
        if ($logger instanceof Logger) {
                $this->parent = $logger;
        }
    }

    /**
     * Set the resource bundle to be used with localized logging methods
     */
    public function setResourceBundle($bundle)
    {
        return;
    }

    /**
     * @deprecated use {@link LoggerManager::shutdown()} instead.
     * @see LoggerManager::shutdown()
     */
    public function shutdown()
    {
        LoggerManager::shutdown();
    }

    /**
     * Log a message with the WARN level.
     *
     * @param mixed $message message
     * @param mixed $caller caller object or caller string id
     */
    public function warn($message, $caller = null)
    {
        $warnLevel = LoggerLevel::getLevelWarn();
        if ($this->repository->isDisabled($warnLevel)) {
            return;
        }
        if ($warnLevel->isGreaterOrEqual($this->getEffectiveLevel())) {
            $this->forcedLog($this->fqcn, $caller, $warnLevel, $message);
        }
    }

}

⌨️ 快捷键说明

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