包 | system.logging |
---|---|
继承 | class CEmailLogRoute » CLogRoute » CComponent |
源自 | 1.0 |
版本 | $Id: CEmailLogRoute.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 |
CEmailLogRoute发送已选择的日志信息到email地址。
目录email地址可能通过emails属性指定。 可选的,你可以设置邮件subject, sentFrom地址和任何附加的 headers。
目录email地址可能通过emails属性指定。 可选的,你可以设置邮件subject, sentFrom地址和任何附加的 headers。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
categories | string | 被逗号或空格分隔的类别列表。默认为空,意味着所有类别。 | CLogRoute |
emails | array | 目标邮件地址列表 | CEmailLogRoute |
enabled | boolean | 是否启用这个日志路由。默认为true。 | CLogRoute |
filter | mixed | 附加过滤器 (例如 CLogFilter) 它被应用到日志信息。
这个属性的值被传递到 Yii::createComponent 创建一个日志过滤器对象。
结果,这可能是一个表示过滤器类名的字符串或一个表示过滤器配置的数组。
总之,日志过滤器类应该是 CLogFilter 或它的一个子类。 默认为null,意味着没有过滤器被使用。 |
CLogRoute |
headers | array | 发送一个邮件时的附加头部。 | CEmailLogRoute |
levels | string | 用逗号或空格分隔的等级列表。默认是空,意味着所有等级。 | CLogRoute |
logs | array | 到目前为止这个日志路由搜集的日志。 | CLogRoute |
sentFrom | string | 邮件发送的源地址 | CEmailLogRoute |
subject | string | 邮件主题。默认是CEmailLogRoute::DEFAULT_SUBJECT | CEmailLogRoute |
公共方法
方法 | 描述 | 定义在 |
---|---|---|
__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 |
getEmails() | 返回目标邮件地址列表 | CEmailLogRoute |
getEventHandlers() | 返回一个事件的附加处理程序列表。 | CComponent |
getHeaders() | 返回发送一个邮件时的附加头部。 | CEmailLogRoute |
getSentFrom() | 返回邮件发送的源地址 | CEmailLogRoute |
getSubject() | 返回邮件主题。默认是CEmailLogRoute::DEFAULT_SUBJECT | CEmailLogRoute |
hasEvent() | 确定一个事件是否定义。 | CComponent |
hasEventHandler() | 检查事件是否有附加的处理程序。 | CComponent |
hasProperty() | 确定属性是否被定义。 | CComponent |
init() | 初始化路由。 | CLogRoute |
raiseEvent() | 发起一个事件。 | CComponent |
setEmails() | 设置目标邮件地址列表。 如果值是一个字符串,假定通过逗号分隔邮件地址。 | CEmailLogRoute |
setHeaders() | 设置发送一个邮件时的附加头部列表。 如果值是一个字符串,假定以换行符分隔头部。 | CEmailLogRoute |
setSentFrom() | 设置发送邮件的源地址 | CEmailLogRoute |
setSubject() | 设置邮件主题。 | CEmailLogRoute |
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
formatLogMessage() | 格式化一条日志信息已给定不同字段。 | CLogRoute |
processLogs() | 发送日志信息到指定的邮件地址。 | CEmailLogRoute |
sendEmail() | 发送一份邮件。 | CEmailLogRoute |
属性详细
emails
属性
目标邮件地址列表
headers
属性
(可用自 v1.1.4)
发送一个邮件时的附加头部。
sentFrom
属性
邮件发送的源地址
subject
属性
邮件主题。默认是CEmailLogRoute::DEFAULT_SUBJECT
方法详细
getEmails()
方法
public array getEmails()
| ||
{return} | array | 目标邮件地址列表 |
public function getEmails()
{
return $this->_email;
}
getHeaders()
方法
(可用自 v1.1.4)
public array getHeaders()
| ||
{return} | array | 发送一个邮件时的附加头部。 |
public function getHeaders()
{
return $this->_headers;
}
getSentFrom()
方法
public string getSentFrom()
| ||
{return} | string | 邮件发送的源地址 |
public function getSentFrom()
{
return $this->_from;
}
getSubject()
方法
public string getSubject()
| ||
{return} | string | 邮件主题。默认是CEmailLogRoute::DEFAULT_SUBJECT |
public function getSubject()
{
return $this->_subject;
}
processLogs()
方法
protected void processLogs(array $logs)
| ||
$logs | array | 日志消息列表 |
protected function processLogs($logs)
{
$message='';
foreach($logs as $log)
$message.=$this->formatLogMessage($log[0],$log[1],$log[2],$log[3]);
$message=wordwrap($message,70);
$subject=$this->getSubject();
if($subject===null)
$subject=Yii::t('yii','Application Log');
foreach($this->getEmails() as $email)
$this->sendEmail($email,$subject,$message);
}
发送日志信息到指定的邮件地址。
sendEmail()
方法
protected void sendEmail(string $email, string $subject, string $message)
| ||
string | 单个邮件地址 | |
$subject | string | 邮件主题 |
$message | string | 邮件内容 |
protected function sendEmail($email,$subject,$message)
{
$headers=$this->getHeaders();
if(($from=$this->getSentFrom())!==null)
$headers[]="From: {$from}";
mail($email,$subject,$message,implode("\r\n",$headers));
}
发送一份邮件。
setEmails()
方法
public void setEmails(mixed $value)
| ||
$value | mixed | 目标邮件地址列表。 如果值是一个字符串,假定通过逗号分隔邮件地址。 |
public function setEmails($value)
{
if(is_array($value))
$this->_email=$value;
else
$this->_email=preg_split('/[\s,]+/',$value,-1,PREG_SPLIT_NO_EMPTY);
}
setHeaders()
方法
(可用自 v1.1.4)
public void setHeaders(mixed $value)
| ||
$value | mixed | 发送一个邮件时的附加头部列表。 如果值是一个字符串,假定以换行符分隔头部。 |
public function setHeaders($value)
{
if (is_array($value))
$this->_headers=$value;
else
$this->_headers=preg_split('/\r\n|\n/',$value,-1,PREG_SPLIT_NO_EMPTY);
}
setSentFrom()
方法
public void setSentFrom(string $value)
| ||
$value | string | 发送邮件的源地址 |
public function setSentFrom($value)
{
$this->_from=$value;
}
setSubject()
方法
public void setSubject(string $value)
| ||
$value | string | 邮件主题。 |
public function setSubject($value)
{
$this->_subject=$value;
}