Вход Регистрация
Файл: protected/extensions/yii2-debug/panels/Yii2LogPanel.php
Строк: 73
<?php

/**
 * @author Roman Zhuravlev <zhuravljov@gmail.com>
 * @package Yii2Debug
 * @since 1.1.13
 */
class Yii2LogPanel extends Yii2DebugPanel
{
    const 
CATEGORY_DUMP 'Yii2Debug.dump';

    public function 
getName()
    {
        return 
'Logs';
    }

    public function 
getSummary()
    {
        
$errorCount 0;
        
$warningCount 0;
        
$infoCount 0;
        foreach (
$this->data['messages'] as $log) {
            
$level $log[1];
            if (
$level == CLogger::LEVEL_ERROR$errorCount++;
            elseif (
$level == CLogger::LEVEL_WARNING$warningCount++;
            elseif (
$level == CLogger::LEVEL_INFO$infoCount++;
        }
        return 
$this->render(dirname(__FILE__) . '/../views/panels/log_bar.php', array(
            
'count' => count($this->data['messages']),
            
'errorCount' => $errorCount,
            
'warningCount' => $warningCount,
            
'infoCount' => $infoCount,
        ));
    }

    public function 
getDetail()
    {
        
$data $this->getData();
        foreach (
$data['messages'] as $i => $log) {
            list (
$message$level$category$time) = $log;
            
$time date('H:i:s.'$time) . sprintf('%03d', (int)(($time - (int)$time) * 1000));
            
$traces = array();
            if ((
$lines explode("nStack trace:n"$message2)) !== false) {
                
$message $lines[0];
                if (isset(
$lines[1])) {
                    
$traces array_merge(
                        array(
'Stack trace:'),
                        
explode("n"$lines[1])
                    );
                } elseif ((
$lines explode("nin "$message)) !== false) {
                    
$message array_shift($lines);
                    
$base dirname(Yii::app()->getBasePath()) . DIRECTORY_SEPARATOR;
                    foreach (
$lines as &$line) {
                        
$line str_replace($base''$line);
                    }
                    unset(
$line);
                    
$traces $lines;
                }
            }
            
$data['messages'][$i] = array($message$level$category$time$traces);
        }
        return 
$this->render(dirname(__FILE__) . '/../views/panels/log.php', array(
            
'data' => $data,
        ));
    }

    public function 
save()
    {
        
$messages Yii::getLogger()->getLogs(implode(',', array(
            
CLogger::LEVEL_ERROR,
            
CLogger::LEVEL_INFO,
            
CLogger::LEVEL_WARNING,
            
CLogger::LEVEL_TRACE,
        )));
        return array(
            
'messages' => $messages,
        );
    }
}
Онлайн: 0
Реклама