* \ingroup logger */ class LogUtil { /** * format an array or object * for debug purpose, format the debug message * usage: * * $this->log->debug("current value is ".LogUtil::format($var)); * or * $this->log->debug(LogUtil::format($var)); * * * NOTE: * parameter should be a variable, especailly the parameter is an array or * object * * @param variable * @return string the formatted string * @static */ /** * see copyright below! * this should help in debugging purposes... */ /////////////////////////////////////////////////////////////// /// tableVarDump() by James Heinrich // // available at http://www.silisoftware.com /// /////////////////////////////////////////////////////////////// // // // Requires: // // PHP 3.0.7 (or higher) // // // // // // This code is released under the GNU GPL: // // http://www.gnu.org/copyleft/gpl.html // // // // +---------------------------------------------+ // // | If you do use this code somewhere, send me | // // | an email and tell me how/where you used it. | // // +---------------------------------------------+ // // // /////////////////////////////////////////////////////////////// /// // // v1.0.1 - September 19, 2003 // // * Bugfix: included missing string_var_dump() function // // (thanks Andrei Verovski) // // // // v1.0.0 - May 8, 2003 // // * initial public release // // /// /////////////////////////////////////////////////////////////// function format($variable) { $returnstring = ''; switch (gettype($variable)) { case 'boolean': $returnstring .= ($variable ? 'TRUE' : 'FALSE'); break; case 'integer': case 'double': case 'float': $returnstring .= $variable; break; case 'array': case 'object': case 'null': ob_start(); //print_r($variable); var_dump($variable); $returnstring .= ob_get_contents(); ob_end_clean(); break; case 'string': $variable = str_replace("\x00", ' ', $variable); $varlen = strlen($variable); for ($i = 0; $i < $varlen; $i++) { if (ereg('['.chr(0x0A).chr(0x0D).' -;0-9A-Za-z]', $variable{$i})) { $returnstring .= $variable{$i}; } else { $returnstring .= '&#'.str_pad(ord($variable{$i}), 3, '0', STR_PAD_LEFT).';'; } } break; default: $returnstring .= $variable; break; } return $returnstring; } function string_var_dump($variable) { ob_start(); var_dump($variable); $dumpedvariable = ob_get_contents(); ob_end_clean(); return $dumpedvariable; } /** * Generates a stack trace */ function dumpStack() { if( function_exists("debug_backtrace")) { $info = debug_backtrace(); print( "-- Backtrace --
" ); foreach( $info as $trace ) { if( ($trace["function"] != "_internalerrorhandler") && ($trace["file"] != __FILE__ )) { print( $trace["file"] ); print( "(".$trace["line"]."): " ); if( isset( $trace["class"] )) { if( $trace["class"] != "" ) print( $trace["class"]."." ); } print( $trace["function"] ); print( "
" ); } } print( "
" ); } else { print("Stack trace is not available
"); } } } ?>