Spec-Zone.ru › Yii 1.1

CDbLogRoute

Пакет system.logging
Наследование класс CDbLogRoute » CLogRoute » CComponent
С момента 1.0
Исходный код framework/logging/CDbLogRoute.php
CDbLogRoute сохраняет сообщения журнала в таблицу базы данных.

Для указания таблицы базы данных для хранения сообщений журнала, установите logTableName как имя таблицы и укажите connectionID в качестве идентификатора компонента приложения CDbConnection. Если они не установлены, будет создана и использована база данных SQLite3 с именем 'log-YiiVersion.db' в каталоге выполнения приложения.

Свойства публичные

Свойство Тип Описание Определено
autoCreateLogTable boolean указывает, должна ли таблица базы данных журнала автоматически создаваться, если она не существует. CDbLogRoute
categories mixed массив категорий или строковый список, разделённый запятыми или пробелами. CLogRoute
connectionID string идентификатор компонента приложения CDbConnection. CDbLogRoute
enabled boolean указывает, включена ли эта запись журнала. CLogRoute
except mixed массив категорий или строковый список, разделённый запятыми или пробелами, чтобы исключить из логов. CLogRoute
filter mixed дополнительный фильтр (например, CLogFilter), который может быть применён к сообщениям журнала. CLogRoute
levels string список уровней, разделённых запятыми или пробелами. CLogRoute
logTableName string имя таблицы БД, хранящей содержимое журнала. CDbLogRoute
logs array журналы, собранные до сих пор этой записью журнала. CLogRoute

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

Свойство Тип Описание Определено
dbConnection CDbConnection экземпляр подключения к базе данных CDbLogRoute

Публичные методы

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

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

Метод Описание Определено
createLogTable() Создаёт таблицу БД для хранения сообщений журнала. CDbLogRoute
formatLogMessage() Форматирует сообщение журнала, используя различные поля. CLogRoute
getDbConnection() Возвращает экземпляр подключения к базе данных CDbLogRoute
processLogs() Сохраняет сообщения журнала в базе данных. CDbLogRoute

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

autoCreateLogTable свойство

public boolean $autoCreateLogTable;

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

См. также

  • logTableName

connectionID свойство

public string $connectionID;

идентификатор компонента приложения CDbConnection. Если не задано, база данных SQLite будет создана и использована автоматически. Файл базы данных SQLite protected/runtime/log-YiiVersion.db.

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

protected CDbConnection getDbConnection()

экземпляр подключения к базе данных

logTableName свойство

public string $logTableName;

Имя таблицы БД, которая хранит содержимое логов. По умолчанию 'YiiLog'. Если autoCreateLogTable равно false, и вы хотите создать таблицу БД вручную, убедитесь, что структура таблицы БД следующая:

 (
	id       INTEGER NOT NULL PRIMARY KEY,
	level    VARCHAR(128),
	category VARCHAR(128),
	logtime  INTEGER,
	message  TEXT
  )
Обратите внимание, что столбец 'id' должен быть создан как автоинкрементный. В MySQL это означает, что он должен быть id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY; в PostgreSQL это id SERIAL PRIMARY KEY.

См. также

  • autoCreateLogTable

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

createLogTable() метод

protected void createLogTable(CDbConnection $db, string $tableName)
$db CDbConnection соединение с базой данных
$tableName строка имя таблицы, которая должна быть создана
Исходный код: framework/logging/CDbLogRoute.php#88 (показать)
protected function createLogTable($db,$tableName)
{
    
$db->createCommand()->createTable($tableName, array(
        
'id'=>'pk',
        
'level'=>'varchar(128)',
        
'category'=>'varchar(128)',
        
'logtime'=>'integer',
        
'message'=>'text',
    ));
}

Создает таблицу БД для хранения сообщений логов.

getDbConnection() метод

protected CDbConnection getDbConnection()
{return} CDbConnection экземпляр подключения к БД
Исходный код: framework/logging/CDbLogRoute.php#103 (показать)
protected function getDbConnection()
{
    if(
$this->_db!==null)
        return 
$this->_db;
    elseif((
$id=$this->connectionID)!==null)
    {
        if((
$this->_db=Yii::app()->getComponent($id)) instanceof CDbConnection)
            return 
$this->_db;
        else
            throw new 
CException(Yii::t('yii','CDbLogRoute.connectionID "{id}" does not point to a valid CDbConnection application component.',
                array(
'{id}'=>$id)));
    }
    else
    {
        
$dbFile=Yii::app()->getRuntimePath().DIRECTORY_SEPARATOR.'log-'.Yii::getVersion().'.db';
        return 
$this->_db=new CDbConnection('sqlite:'.$dbFile);
    }
}

init() метод

public void init()
Исходный код: framework/logging/CDbLogRoute.php#65 (показать)
public function init()
{
    
parent::init();

    if(
$this->autoCreateLogTable)
    {
        
$db=$this->getDbConnection();
        try
        {
            
$db->createCommand()->delete($this->logTableName,'0=1');
        }
        catch(
Exception $e)
        {
            
$this->createLogTable($db,$this->logTableName);
        }
    }
}

Инициализирует маршрут. Этот метод вызывается после создания маршрута менеджером маршрутов.

processLogs() метод

protected void processLogs(array $logs)
$logs массив список сообщений логов
Исходный код: framework/logging/CDbLogRoute.php#126 (показать)
protected function processLogs($logs)
{
    
$command=$this->getDbConnection()->createCommand();
    foreach(
$logs as $log)
    {
        
$command->insert($this->logTableName,array(
            
'level'=>$log[1],
            
'category'=>$log[2],
            
'logtime'=>(int)$log[3],
            
'message'=>$log[0],
        ));
    }
}

Сохраняет сообщения логов в базу данных.

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

Spec-Zone.ru

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