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