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