Forums / Developer / Ez debugging levels question

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Ez debugging levels question

Author Message

Paul Forsyth

Friday 16 July 2004 8:38:16 am

I want to use a more sophisticated way of logging events and items in my code. For that i want to use levels and loggers.

Looking in ezdebug.php there seems to be support for levels but i haven't seen any examples of debug lines being incorporated into code in a way that allows for settings to influence what is displayed.

I tend to use debug lines as print statements, which isnt good. Are there examples someone could point me to that illustrate how to best use the eZ debug tools?

paul

--
http://www.visionwt.com

Björn X

Friday 16 July 2004 8:53:44 am

ezdebug is related to php errors.

you might wanna look at eZLogger though.

I implemented my own class

<?php
<?php
/*! \file ezsimpleobject.php
*/

/*!
  \class eZSimpleObject ezsimpleobject.php
  \brief The class eZSimpleObject provide could be the super class of any regular object 
 		 you can also parse this Object to the tempalte engine
*/
include_once( "kernel/classes/ezpersistentobject.php" );
class eZSimpleObject extends eZPersistentObject
{
	function eZSimpleObject()
	{
	}
	function hasattribute($name)
	{
		$classname = get_class($this);
		$vars = get_class_vars($classname);
		if ( array_key_exists($name,$vars) )
			return true;
		else
			return false;
	}
	function toString()
	{
		return;
	}
	function setAttribute( $name, &$value )
	{
		$this->$name = & $value;
	}
	function & attribute($name)
	{
		return $this->$name;
	}
	function &instance($keys = null,$classname=__CLASS__)
	{
		if (is_array($keys) and count($keys))
		{
			$keystring=implode("", $array);
		}
		else if ($keys and (is_string($keys) or is_integer($keys) ) )
		{
			$keystring="$keys";
		}
		else
		{
			$keystring="";
		}
		$impl =& $GLOBALS[__CLASS__."GlobalInstance".$keystring];
        $class =& get_class( $impl );
        if ( $class != __CLASS__ )
        {
            $impl = new $classname( $keys );
            $GLOBALS[__CLASS__."GlobalInstance".$keystring]=$impl;
        }
        return $impl;
	}
}
?>
class eZError extends eZSimpleObject
{
	function eZError( $text, $type=null,$number=null)
	{
		if ($text)
			$this->text=$text;
		if ($type)
			$this->error['type']=$type;
		if ($number)
			$this->error['number']=$number;
		if (isset($GLOBALS['eZErrors']))
		{
			$GLOBALS['eZErrors'][] = & $this;
		}
	}
	function hasErrors()
	{
		if ( isset($GLOBALS['eZErrors']) and count( $GLOBALS['eZErrors'] ) > 0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	function clearAll()
	{
		unset($GLOBALS['eZErrors']);
	}
	function initGlobal( &$tpl )
	{
		if ( !isset($GLOBALS['eZErrors']) )
		{	
			$GLOBALS['eZErrors'] = array();
			if ( $tpl )
			{
				$tpl->setVariableRef('ezerrors',$GLOBALS['eZErrors'],'siteskins');
			}
			return true;
		}
		else
		{
			return false;
		}
	}
	function &instance($id)
	{
		return parent::instance($id,"ezerror");
	}
	var $text;
	var $error;
}
?>
{default warning_list=array()}
{section show=or(and(is_array($warning_list),$warning_list|count|gt(0) ), and(is_array($siteskins:ezerrors), $siteskins:ezerrors|count|gt(0) ) )}
<div class="warning">
	<h2>{"Warning"|i18n("design/siteskins")}</h2>
    <ul>
        {section name=Warning loop=$warning_list}
        <li>{$Warning:item.text} {section show=is_set($Warning:item.error.type)} {$Warning:item.error.type} ({$Warning:item.error.number}){/section}</li>
        {/section}
        {section name=Warning loop=$siteskins:ezerrors}
        <li>{$Warning:item.text} {section show=is_set($Warning:item.error.type)} {$Warning:item.error.type} ({$Warning:item.error.number}){/section}</li>
        {/section}
    </ul>
</div>
{/section}
{/default}