CLogRoute
Package | system.logging |
---|---|
Inheritance | abstract class CLogRoute » CComponent |
Subclasses | CDbLogRoute, CEmailLogRoute, CFileLogRoute, CSysLogRoute, CWebLogRoute |
Since | 1.0 |
Source Code | framework/logging/CLogRoute.php |
A log route object retrieves log messages from a logger and sends it somewhere, such as files, emails. The messages being retrieved may be filtered first before being sent to the destination. The filters include log level filter and log category filter.
To specify level filter, set levels property, which takes a string of comma-separated desired level names (e.g. 'Error, Debug'). To specify category filter, set categories property, which takes a string of comma-separated desired category names (e.g. 'System.Web, System.IO').
Level filter and category filter are combinational, i.e., only messages satisfying both filter conditions will they be returned.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
categories | mixed | array of categories, or string list separated by comma or space. | CLogRoute |
enabled | boolean | whether to enable this log route. | CLogRoute |
except | mixed | array of categories, or string list separated by comma or space, to EXCLUDE from logs. | CLogRoute |
filter | mixed | the additional filter (eg CLogFilter) that can be applied to the log messages. | CLogRoute |
levels | string | list of levels separated by comma or space. | CLogRoute |
logs | array | the logs that are collected so far by this log route. | CLogRoute |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
collectLogs() | Retrieves filtered log messages from logger for further processing. | CLogRoute |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
init() | Initializes the route. | CLogRoute |
raiseEvent() | Raises an event. | CComponent |
Protected Methods
Method | Description | Defined By |
---|---|---|
formatLogMessage() | Formats a log message given different fields. | CLogRoute |
processLogs() | Processes log messages and sends them to specific destination. | CLogRoute |
Property Details
categories property
public mixed $categories;
array of categories, or string list separated by comma or space. Defaults to empty array, meaning all categories.
enabled property
public boolean $enabled;
whether to enable this log route. Defaults to true.
except property
public mixed $except;
array of categories, or string list separated by comma or space, to EXCLUDE from logs. Defaults to empty array, meaning no categories are excluded. This will exclude any categories after $categories has been ran.
filter property
public mixed $filter;
the additional filter (eg CLogFilter) that can be applied to the log messages. The value of this property will be passed to Yii::createComponent to create a log filter object. As a result, this can be either a string representing the filter class name or an array representing the filter configuration. In general, the log filter class should implement ILogFilter interface. If you want to apply multiple filters you can use CChainedLogFilter to do so. Defaults to null, meaning no filter will be used.
levels property
public string $levels;
list of levels separated by comma or space. Defaults to empty, meaning all levels.
logs property (available since v1.1.0)
public array $logs;
the logs that are collected so far by this log route.
Method Details
collectLogs() method
public void collectLogs(CLogger $logger, boolean $processLogs=false) | ||
$logger | CLogger | logger instance |
$processLogs | boolean | whether to process the logs after they are collected from the logger |
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();
}
}
Retrieves filtered log messages from logger for further processing.
formatLogMessage() method
protected string formatLogMessage(string $message, integer $level, string $category, integer $time) | ||
$message | string | message content |
$level | integer | message level |
$category | string | message category |
$time | integer | timestamp |
{return} | string | formatted message |
protected function formatLogMessage($message,$level,$category,$time)
{
return @date('Y/m/d H:i:s',$time)." [$level] [$category] $message\n";
}
Formats a log message given different fields.
init() method
public void init() |
Initializes the route. This method is invoked after the route is created by the route manager.
processLogs() method
abstract protected void processLogs(array $logs) | ||
$logs | array | list of messages. Each array element represents one message with the following structure: array( [0] => message (string) [1] => level (string) [2] => category (string) [3] => timestamp (float, obtained by microtime(true)); |
abstract protected function processLogs($logs);
Processes log messages and sends them to specific destination. Derived child classes must implement this method.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CLogRoute