Qiang Xue
12 years ago
3 changed files with 56 additions and 68 deletions
@ -0,0 +1,48 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* @link http://www.yiiframework.com/ |
||||||
|
* @copyright Copyright (c) 2008 Yii Software LLC |
||||||
|
* @license http://www.yiiframework.com/license/ |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace yii\logging; |
||||||
|
|
||||||
|
use Yii; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Qiang Xue <qiang.xue@gmail.com> |
||||||
|
* @since 2.0 |
||||||
|
*/ |
||||||
|
class DebugTarget extends Target |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Exports log messages to a specific destination. |
||||||
|
* Child classes must implement this method. |
||||||
|
* @param array $messages the messages to be exported. See [[Logger::messages]] for the structure |
||||||
|
* of each message. |
||||||
|
*/ |
||||||
|
public function export($messages) |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Processes the given log messages. |
||||||
|
* This method will filter the given messages with [[levels]] and [[categories]]. |
||||||
|
* And if requested, it will also export the filtering result to specific medium (e.g. email). |
||||||
|
* @param array $messages log messages to be processed. See [[Logger::messages]] for the structure |
||||||
|
* of each message. |
||||||
|
* @param boolean $final whether this method is called at the end of the current application |
||||||
|
*/ |
||||||
|
public function collect($messages, $final) |
||||||
|
{ |
||||||
|
$this->messages = array_merge($this->messages, $this->filterMessages($messages)); |
||||||
|
$count = count($this->messages); |
||||||
|
if ($count > 0 && ($final || $this->exportInterval > 0 && $count >= $this->exportInterval)) { |
||||||
|
if (($context = $this->getContextMessage()) !== '') { |
||||||
|
$this->messages[] = array($context, Logger::LEVEL_INFO, 'application', YII_BEGIN_TIME); |
||||||
|
} |
||||||
|
$this->export($this->messages); |
||||||
|
$this->messages = array(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,61 +0,0 @@ |
|||||||
<?php |
|
||||||
/** |
|
||||||
* @link http://www.yiiframework.com/ |
|
||||||
* @copyright Copyright © 2008-2011 Yii Software LLC |
|
||||||
* @license http://www.yiiframework.com/license/ |
|
||||||
*/ |
|
||||||
|
|
||||||
/** |
|
||||||
* CWebLogRoute shows the log content in Web page. |
|
||||||
* |
|
||||||
* The log content can appear either at the end of the current Web page |
|
||||||
* or in FireBug console window (if {@link showInFireBug} is set true). |
|
||||||
* |
|
||||||
* @author Qiang Xue <qiang.xue@gmail.com> |
|
||||||
* @since 2.0 |
|
||||||
*/ |
|
||||||
class CWebLogRoute extends CLogRoute |
|
||||||
{ |
|
||||||
/** |
|
||||||
* @var boolean whether the log should be displayed in FireBug instead of browser window. Defaults to false. |
|
||||||
*/ |
|
||||||
public $showInFireBug = false; |
|
||||||
|
|
||||||
/** |
|
||||||
* @var boolean whether the log should be ignored in FireBug for ajax calls. Defaults to true. |
|
||||||
* This option should be used carefully, because an ajax call returns all output as a result data. |
|
||||||
* For example if the ajax call expects a json type result any output from the logger will cause ajax call to fail. |
|
||||||
*/ |
|
||||||
public $ignoreAjaxInFireBug = true; |
|
||||||
|
|
||||||
/** |
|
||||||
* Displays the log messages. |
|
||||||
* @param array $logs list of log messages |
|
||||||
*/ |
|
||||||
public function processLogs($logs) |
|
||||||
{ |
|
||||||
$this->render('log', $logs); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Renders the view. |
|
||||||
* @param string $view the view name (file name without extension). The file is assumed to be located under framework/data/views. |
|
||||||
* @param array $data data to be passed to the view |
|
||||||
*/ |
|
||||||
protected function render($view, $data) |
|
||||||
{ |
|
||||||
$app = \Yii::$app; |
|
||||||
$isAjax = $app->getRequest()->getIsAjaxRequest(); |
|
||||||
|
|
||||||
if ($this->showInFireBug) |
|
||||||
{ |
|
||||||
if ($isAjax && $this->ignoreAjaxInFireBug) |
|
||||||
return; |
|
||||||
$view .= '-firebug'; |
|
||||||
} elseif (!($app instanceof CWebApplication) || $isAjax) |
|
||||||
return; |
|
||||||
|
|
||||||
$viewFile = YII_PATH . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . $view . '.php'; |
|
||||||
include($app->findLocalizedFile($viewFile, 'en')); |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue