CDbLogRoute
| Пакет | system.logging |
|---|---|
| Наследование | класс CDbLogRoute » CLogRoute » CComponent |
| С момента | 1.0 |
| Исходный код | framework/logging/CDbLogRoute.php |
Для указания таблицы базы данных для хранения сообщений журнала, установите 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.
См. также
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. См. также
Подробное описание методов
createLogTable() метод
protected void createLogTable(CDbConnection $db, string $tableName) | ||
| $db | CDbConnection | соединение с базой данных |
| $tableName | строка | имя таблицы, которая должна быть создана |
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 | экземпляр подключения к БД |
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() |
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 | массив | список сообщений логов |
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