CLogRoute
| Пакет | system.logging |
|---|---|
| Наследование | абстрактный класс CLogRoute » CComponent |
| Подклассы | CDbLogRoute, CEmailLogRoute, CFileLogRoute, CSysLogRoute, CWebLogRoute |
| С версии | 1.0 |
| Исходный код | framework/logging/CLogRoute.php |
Объект маршрутизации логов получает сообщения логов из логгера и отправляет их куда-либо, например, в файлы или по электронной почте. Сообщения могут быть отфильтрованы перед отправкой в пункт назначения. Фильтры включают фильтр уровня лога и фильтр категории лога.
Для указания фильтра уровня задайте свойство levels, которое принимает строку с запятыми или пробелами, содержащую нужные имена уровней (например, 'Error, Debug'). Для указания фильтра категории задайте свойство categories, которое принимает строку с запятыми или пробелами, содержащую нужные имена категорий (например, 'System.Web, System.IO').
Фильтры уровня и категории комбинируются, т.е. только сообщения, удовлетворяющие обоим условиям фильтра, будут возвращены.
Свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| categories | mixed | массив категорий или строка со списком, разделённым запятыми или пробелами. | CLogRoute |
| enabled | boolean | включить ли этот маршрут логов. | CLogRoute |
| except | mixed | массив категорий или строка со списком, разделённым запятыми или пробелами, которые ИСКЛЮЧАЮТСЯ из логов. | CLogRoute |
| filter | mixed | дополнительный фильтр (например, CLogFilter), который можно применить к сообщениям логов. | CLogRoute |
| levels | string | список уровней, разделённых запятыми или пробелами. | CLogRoute |
| logs | array | логи, собранные до сих пор этим маршрутом логов. | CLogRoute |
Методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | 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() | Инициализирует маршрут. | CLogRoute |
| raiseEvent() | Вызывает событие. | CComponent |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| formatLogMessage() | Форматирует сообщение лога на основе различных полей. | CLogRoute |
| processLogs() | Обрабатывает сообщения логов и отправляет их в определённый пункт назначения. | CLogRoute |
Подробности свойств
categories свойство
public mixed $categories;
массив категорий или строка со списком, разделённым запятыми или пробелами. По умолчанию пустой массив, что означает все категории.
enabled свойство
public boolean $enabled;
включить ли этот маршрут логов. По умолчанию true.
except свойство
public mixed $except;
массив категорий или строка со списком, разделённым запятыми или пробелами, которые ИСКЛЮЧАЮТСЯ из логов. По умолчанию пустой массив, что означает, что никакие категории не исключаются. Это исключит категории после выполнения $categories.
filter свойство
public mixed $filter;
дополнительный фильтр (например, CLogFilter), который можно применить к сообщениям логов. Значение этого свойства будет передано в Yii::createComponent для создания объекта фильтра логов. В результате это может быть строка, представляющая имя класса фильтра, или массив, представляющий конфигурацию фильтра. В общем случае класс фильтра логов должен реализовывать интерфейс ILogFilter. Если нужно применить несколько фильтров, можно использовать CChainedLogFilter. По умолчанию null, что означает отсутствие фильтра.
levels свойство
public string $levels;
список уровней, разделённых запятыми или пробелами. По умолчанию пусто, что означает все уровни.
logs свойство (доступно с версии 1.1.0)
public array $logs;
логи, собранные до сих пор этим маршрутом логов.
Подробности методов
collectLogs() метод
public void collectLogs(CLogger $logger, boolean $processLogs=false) | ||
| $logger | CLogger | экземпляр логгера |
| $processLogs | boolean | обрабатывать ли логи после их сбора из логгера |
public function collectLogs($logger, $processLogs=false)
{
$logs=$logger->getLogs($this->levels,$this->categories,$this->except);
$this->logs=empty($this->logs) ? $logs : array_merge($this->logs,$logs);
if($processLogs && !empty($this->logs))
{
if($this->filter!==null)
Yii::createComponent($this->filter)->filter($this->logs);
if($this->logs!==array())
$this->processLogs($this->logs);
$this->logs=array();
}
}
Получает отфильтрованные сообщения логов из логгера для дальнейшей обработки.
formatLogMessage() метод
protected string formatLogMessage(string $message, integer $level, string $category, integer $time) | ||
| $message | string | содержание сообщения |
| $level | integer | уровень сообщения |
| $category | string | категория сообщения |
| $time | integer | метка времени |
| {return} | string | отформатированное сообщение |
protected function formatLogMessage($message,$level,$category,$time)
{
return @date('Y/m/d H:i:s',$time)." [$level] [$category] $message\n";
}
Форматирует сообщение лога, используя различные поля.
init() метод
public void init() |
Инициализирует маршрут. Этот метод вызывается после создания маршрута менеджером маршрутов.
processLogs() метод
abstract protected void processLogs(array $logs) | ||
| $logs | array | список сообщений. Каждый элемент массива представляет одно сообщение со следующей структурой: массив ([0] => сообщение (строка) [1] => уровень (строка) [2] => категория (строка) [3] => метка времени (число с плавающей точкой, полученное с помощью microtime(true)); |
abstract protected function processLogs($logs);
Обрабатывает сообщения логов и отправляет их в определенное место назначения. Производные дочерние классы должны реализовать этот метод.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CLogRoute