CEmailLogRoute


system.logging
继承 class CEmailLogRoute » CLogRoute » CComponent
源自 1.0
版本 $Id: CEmailLogRoute.php 3426 2011-10-25 00:01:09Z alexander.makarow $
源码
CEmailLogRoute发送已选择的日志信息到email地址。

目录email地址可能通过emails属性指定。 可选的,你可以设置邮件subjectsentFrom地址和任何附加的 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 属性
public array getEmails()
public void setEmails(mixed $value)

目标邮件地址列表

headers 属性 (可用自 v1.1.4)
public array getHeaders()
public void setHeaders(mixed $value)

发送一个邮件时的附加头部。

sentFrom 属性
public string getSentFrom()
public void setSentFrom(string $value)

邮件发送的源地址

subject 属性
public string getSubject()
public void setSubject(string $value)

邮件主题。默认是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)
$email 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;
}