--- nfo/php/libs/org.netfrag.app/Tracer.php 2003/04/04 02:17:22 1.1 +++ nfo/php/libs/org.netfrag.app/Tracer.php 2003/04/05 21:19:38 1.2 @@ -11,9 +11,14 @@ */ /** - * $Id: Tracer.php,v 1.1 2003/04/04 02:17:22 joko Exp $ + * $Id: Tracer.php,v 1.2 2003/04/05 21:19:38 joko Exp $ * * $Log: Tracer.php,v $ + * Revision 1.2 2003/04/05 21:19:38 joko + * + function event + * - function warn + * - function info + * * Revision 1.1 2003/04/04 02:17:22 joko * initial commit * @@ -38,23 +43,14 @@ */ -Exporter::export_symbols('Tracer', array('warn', 'info')); +// lowlevel (just calls 'Dumper') Exporter::export_symbol('Tracer', array('add' => 'trace')); +// highlevel (draws colored boxes) +//Exporter::export_symbols('Tracer', array('warn', 'info')); class Tracer { - function warn() { - $parts = func_get_args(); - user_error ( join('
', $parts), E_USER_WARNING ); - } - - function info() { - $parts = func_get_args(); - //print "info: " . Dumper($parts); - errors::add_trace($parts); - } - function box($dom_id = 'errorbox') { global $_TRACE; @@ -89,6 +85,64 @@ } + function event($args = array()) { + + //print "event!!!
"; + //print Dumper($args); + + $type = $args[type]; + $code = $args[code]; + $error = $args[error]; + $payload = $args[payload]; + + switch ($type) { + case 'full': + $output_order = array( 'message', 'component', 'file', 'line', 'level' ); + break; + case 'medium': + $output_order = array( 'message', 'level', 'file', 'line' ); + break; + default: + $output_order = array( 'message', 'level' ); + break; + } + + // dispatch color by level + if ($code <= 8) { + $color = '#eeeeee'; + } elseif ($code == 512) { + $color = 'orange'; + } elseif ($code == 1024) { + $color = 'yellow'; + } else { + $color = 'white'; + } + + $buf = array(); + //print "
ERROR:
"; + array_push($buf, "
Event: [$code]
"); + + // 1. dump of error object + if (is_array($error)) { + foreach ($output_order as $key) { + array_push($buf, "$key: $error[$key]
"); + } + } + // 2. additional payload + if (is_array($payload)) { + array_push($buf, join('
', $payload) ); + } + + array_push($buf, "

\n"); + $out = join("\n", $buf); + + Tracer::add($out); + + return $out; + + } + + } ?> \ No newline at end of file