Вход Регистрация
Файл: framework/dev/LogErrorEmailFormatter.php
Строк: 58
<?php
require_once 'Zend/Log/Formatter/Interface.php';

/**
 * Formats SS error emails with a basic layout.
 *
 * @package framework
 * @subpackage dev
 */
class SS_LogErrorEmailFormatter implements Zend_Log_Formatter_Interface {

    public function 
format($event) {
        switch(
$event['priorityName']) {
            case 
'ERR':
                
$errorType 'Error';
                
$colour 'red';
                break;
            case 
'WARN':
                
$errorType 'Warning';
                
$colour 'orange';
                break;
            case 
'NOTICE':
                
$errorType 'Notice';
                
$colour 'grey';
                break;
            default:
                
$errorType $event['priorityName'];
                
$colour 'grey';
        }

        if(!
is_array($event['message'])) {
            return 
false;
        }

        
$errno $event['message']['errno'];
        
$errstr $event['message']['errstr'];
        
$errfile $event['message']['errfile'];
        
$errline $event['message']['errline'];
        
$errcontext $event['message']['errcontext'];

        
$data '';
        
$data .= '<style type="text/css">html, body, table {font-family: sans-serif; font-size: 12px;}</style>';
        
$data .= "<div style="border5px $colour solid;">n";
        
$data .= "<p style="colorwhitebackground-color$colourmargin0">[$errorType] ";
        
$data .= nl2br(htmlspecialchars($errstr))."<br />$errfile:$errlinen<br />n<br />n</p>n";

        
// Render the provided backtrace
        
$data .= SS_Backtrace::get_rendered_backtrace($errcontext);

        
// Compile extra data
        
$blacklist = array('message''timestamp''priority''priorityName');
        
$extras array_diff_key($eventarray_combine($blacklist$blacklist));
        if(
$extras) {
            
$data .= "<h3>Details</h3>n";
            
$data .= "<table class="extras">n";
            foreach(
$extras as $k => $v) {
                if(
is_array($v)) $v var_export($vtrue);
                
$data .= sprintf(
                    
"<tr><td><strong>%s</strong></td><td><pre>%s</pre></td></tr>n"$k$v);
            }
            
$data .= "</table>n";
        }

        
$data .= "</div>n";

        
$relfile Director::makeRelative($errfile);
        if(
$relfile && $relfile[0] == '/'$relfile substr($relfile1);

        
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : null;
        
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : null;

        
$subject "[$errorType] in $relfile:{$errline} (http://{$host}{$uri})";

        return array(
            
'subject' => $subject,
            
'data' => $data
        
);
    }

}
Онлайн: 0
Реклама