Spec-Zone.ru › Yii 1.1

CLogFilter

Пакет system.logging
Наследование class CLogFilter » CComponent
Реализует ILogFilter
Исходный код framework/logging/CLogFilter.php
CLogFilter предварительно обрабатывает сообщения журнала перед их обработкой маршрутом журнала.

CLogFilter предназначен для использования маршрутом журнала для предварительной обработки сообщений журнала перед их обработкой маршрутом. По умолчанию CLogFilter добавляет дополнительную контекстную информацию к сообщениям журнала. В частности, задав logVars, можно сохранить предопределённые переменные PHP, такие как $_SERVER, $_POST и т.д., в качестве сообщения журнала, что может помочь определить/отладить возникшие проблемы.

Общественные свойства

Свойство Тип Описание Определено
dumper callable или функция, которая будет использоваться для вывода контекстной информации. CLogFilter
logUser boolean указывает, нужно ли регистрировать имя и идентификатор текущего пользователя. CLogFilter
logVars array список предопределённых переменных PHP, которые необходимо регистрировать. CLogFilter
prefixSession boolean указывает, нужно ли добавлять в начало каждого сообщения журнала идентификатор текущей сессии пользователя. CLogFilter
prefixUser boolean указывает, нужно ли добавлять в начало каждого сообщения журнала имя и идентификатор текущего пользователя (name и ID). CLogFilter

Защищенные свойства

Свойство Тип Описание Определено
context string Генерирует контекстную информацию для регистрации. CLogFilter

Общественные методы

Метод Описание Определено
__call() Вызывает именованный метод, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
asa() Возвращает объект поведения с указанным именем. CComponent
attachBehavior() Прикрепляет поведение к этому компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли считать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые к этому компоненту поведения. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
filter() Фильтрует заданные сообщения журнала. CLogFilter
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, имеются ли присоединённые обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent

Защищенные методы

Метод Описание Определено
format() Форматирует сообщения журнала. CLogFilter
getContext() Генерирует контекстную информацию для регистрации. CLogFilter

Подробное описание свойств

context свойство только для чтения

protected string getContext()

Генерирует контекстную информацию для регистрации. По умолчанию реализация выводит информацию о пользователе, системные переменные и т.д.

dumper свойство (доступно начиная с v1.1.14)

public callable $dumper;

или функция, которая будет использоваться для вывода контекстной информации. По умолчанию используется `var_export`. Если у вас возникают проблемы с циклическими ссылками, измените её на `print_r`. Можно использовать любой тип вызываемого объекта (статические методы, пользовательские функции, лямбды и т.д.).

logUser свойство

public boolean $logUser;

указывает, нужно ли регистрировать имя и идентификатор текущего пользователя. По умолчанию true.

logVars свойство

public array $logVars;

список предопределённых переменных PHP, которые необходимо регистрировать. Обратите внимание, что переменная должна быть доступна через $GLOBALS. В противном случае она не будет зарегистрирована.

prefixSession свойство

public boolean $prefixSession;

указывает, нужно ли добавлять в начало каждого сообщения журнала идентификатор текущей сессии пользователя. По умолчанию false.

prefixUser свойство

public boolean $prefixUser;

указывает, нужно ли добавлять в начало каждого сообщения журнала имя и идентификатор текущего пользователя (name и ID). По умолчанию false.

Подробное описание методов

filter() метод

public array filter(array &$logs)
$logs array сообщения журнала
{return} array
Исходный код: framework/logging/CLogFilter.php#62 (показать)
public function filter(&$logs)
{
    if (!empty(
$logs))
    {
        if((
$message=$this->getContext())!=='')
            
array_unshift($logs,array($message,CLogger::LEVEL_INFO,'application',YII_BEGIN_TIME));
        
$this->format($logs);
    }
    return 
$logs;
}

Фильтрует заданные сообщения журнала. Это основной метод CLogFilter. Он обрабатывает сообщения журнала, добавляя контекстную информацию и т.д.

format() метод

protected void format(array &$logs)
$logs массив записи журнала
Исходный код: framework/logging/CLogFilter.php#80 (показать)
protected function format(&$logs)
{
    
$prefix='';
    if(
$this->prefixSession && ($id=session_id())!=='')
        
$prefix.="[$id]";
    if(
$this->prefixUser && ($user=Yii::app()->getComponent('user',false))!==null)
        
$prefix.='['.$user->getName().']['.$user->getId().']';
    if(
$prefix!=='')
    {
        foreach(
$logs as &$log)
            
$log[0]=$prefix.' '.$log[0];
    }
}

Форматирует записи журнала. По умолчанию каждая запись префиксруется идентификатором сессии, если prefixSession имеет значение true. Также, если prefixUser имеет значение true, каждая запись может префиксроваться именем и идентификатором текущего пользователя.

getContext() метод

protected string getContext()
{возвращает} строка информация о контексте. Если пустая строка, то информация о контексте отсутствует.
Исходный код: framework/logging/CLogFilter.php#99 (показать)
protected function getContext()
{
    
$context=array();
    if(
$this->logUser && ($user=Yii::app()->getComponent('user',false))!==null)
        
$context[]='User: '.$user->getName().' (ID: '.$user->getId().')';

    if(
$this->dumper==='var_export' || $this->dumper==='print_r')
    {
        foreach(
$this->logVars as $name)
            if((
$value=$this->getGlobalsValue($name))!==null)
                
$context[]="\${$name}=".call_user_func($this->dumper,$value,true);
    }
    else
    {
        foreach(
$this->logVars as $name)
            if((
$value=$this->getGlobalsValue($name))!==null)
                
$context[]="\${$name}=".call_user_func($this->dumper,$value);
    }

    return 
implode("\n\n",$context);
}

Генерирует информацию о контексте для записи в журнал. По умолчанию реализация выводит информацию о пользователе, системных переменных и т. д.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CLogFilter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API