CLogFilter
| Пакет | system.logging |
|---|---|
| Наследование | class CLogFilter » CComponent |
| Реализует | ILogFilter |
| Исходный код | framework/logging/CLogFilter.php |
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 | |
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 | массив | записи журнала |
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() | ||
| {возвращает} | строка | информация о контексте. Если пустая строка, то информация о контексте отсутствует. |
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