包 | system.logging |
---|---|
继承 | class CLogRouter » CApplicationComponent » CComponent |
实现 | IApplicationComponent |
源自 | 1.0 |
版本 | $Id: CLogRouter.PHP 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 |
CLogRouter管理用不同媒体记录日志信息的日志路由。
例如,一个文件日志路由 CFileLogRoute 记录日志信息。 在日志文件中一个邮件日志路由 CEmailLogRoute 发送日志信息到指定的邮件地址 参见CLogRoute 获取更多关于不同日志路由的信息。
在应用程序配置中日志路由可能像下面这样配置:
你能指定多个带有不同过滤条件和不同目标的路由, 即使路由是相同类型的。
例如,一个文件日志路由 CFileLogRoute 记录日志信息。 在日志文件中一个邮件日志路由 CEmailLogRoute 发送日志信息到指定的邮件地址 参见CLogRoute 获取更多关于不同日志路由的信息。
在应用程序配置中日志路由可能像下面这样配置:
array( 'preload'=>array('log'), // 预载入日志组件在应用程序开始时 'components'=>array( 'log'=>array( 'class'=>'CLogRouter', 'routes'=>array( array( 'class'=>'CFileLogRoute', 'levels'=>'trace, info', 'categories'=>'system.*', ), array( 'class'=>'CEmailLogRoute', 'levels'=>'error, warning', 'emails'=>array('admin@example.com'), ), ), ), ), )
你能指定多个带有不同过滤条件和不同目标的路由, 即使路由是相同类型的。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
behaviors | array | 这个应用组件附加的行为。 这此行为将在应用组件调用init时附加在应用组件上。 请参照CModel::behaviors如何指定此属性值。 | CApplicationComponent |
isInitialized | boolean | 检查应用组件是否已经初始化。 | CApplicationComponent |
routes | array | 当前已初始化的路由 | CLogRouter |
公共方法
方法 | 描述 | 定义在 |
---|---|---|
__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() | 从一个日志记录器搜集日志信息。 | CLogRouter |
detachBehavior() | 从组件中分离一个行为。 | CComponent |
detachBehaviors() | 从组件中分离所有行为。 | CComponent |
detachEventHandler() | 分离一个存在的事件处理程序。 | CComponent |
disableBehavior() | 禁用一个附加行为。 | CComponent |
disableBehaviors() | 禁用组件附加的所有行为。 | CComponent |
enableBehavior() | 启用一个附加行为。 | CComponent |
enableBehaviors() | 启用组件附加的所有行为。 | CComponent |
evaLuateExpression() | 计算一个PHP表达式,或根据组件上下文执行回调。 | CComponent |
getEventHandlers() | 返回一个事件的附加处理程序列表。 | CComponent |
getIsInitialized() | 检查应用组件是否已经初始化。 | CApplicationComponent |
getRoutes() | 返回当前已初始化的路由 | CLogRouter |
hasEvent() | 确定一个事件是否定义。 | CComponent |
hasEventHandler() | 检查事件是否有附加的处理程序。 | CComponent |
hasProperty() | 确定属性是否被定义。 | CComponent |
init() | 初始化应用程序组件。 | CLogRouter |
processLogs() | 在 logger 中收集和处理日志信息。 | CLogRouter |
raiseEvent() | 发起一个事件。 | CComponent |
setRoutes() | 设置路由配置列表。
每个数组元素表示一个路由配置并且有下面的数组结构:
|
CLogRouter |
属性详细
routes
属性
public array getRoutes()
public void setRoutes(array $config)
public void setRoutes(array $config)
当前已初始化的路由
方法详细
collectLogs()
方法
public void collectLogs(CEvent $event)
| ||
$event | CEvent | 事件参数 |
public function collectLogs($event)
{
$logger=Yii::getLogger();
$dumpLogs=isset($event->params['dumpLogs']) && $event->params['dumpLogs'];
foreach($this->_routes as $route)
{
if($route->enabled)
$route->collectLogs($logger,$dumpLogs);
}
}
从一个日志记录器搜集日志信息。 这个方法是 CLogger::onFlush 事件的事件处理程序。
getRoutes()
方法
public array getRoutes()
| ||
{return} | array | 当前已初始化的路由 |
public function getRoutes()
{
return new CMap($this->_routes);
}
init()
方法
public void init()
|
public function init()
{
parent::init();
foreach($this->_routes as $name=>$route)
{
$route=Yii::createComponent($route);
$route->init();
$this->_routes[$name]=$route;
}
Yii::getLogger()->attachEventHandler('onFlush',array($this,'collectLogs'));
Yii::app()->attachEventHandler('onEndRequest',array($this,'processLogs'));
}
初始化应用程序组件。 这个方法要求通过IApplicationComponent接口。
processLogs()
方法
(可用自 v1.1.0)
public void processLogs(CEvent $event)
| ||
$event | CEvent | 事件参数 |
public function processLogs($event)
{
$logger=Yii::getLogger();
foreach($this->_routes as $route)
{
if($route->enabled)
$route->collectLogs($logger,true);
}
}
在 logger 中收集和处理日志信息。 这个方法是 CApplication::onEndRequest 事件的一个事件处理程序。
setRoutes()
方法
public void setRoutes(array $config)
| ||
$config | array | 路由配置列表。
每个数组元素表示一个路由配置并且有下面的数组结构:
|
public function setRoutes($config)
{
foreach($config as $name=>$route)
$this->_routes[$name]=$route;
}