Logger::txtBacktrace PHP Method

txtBacktrace() public method

public txtBacktrace ( $sh = null, $backtrace = null )
    public function txtBacktrace($sh = null, $backtrace = null)
    {
        if (!isset($backtrace)) {
            $backtrace = debug_backtrace();
        }
        $output = '';
        $n = 0;
        foreach ($backtrace as $bt) {
            ++$n;
            $args = '';
            if (!isset($bt['args'])) {
                $bt['args'] = array();
            }
            foreach ($bt['args'] as $a) {
                if (!empty($args)) {
                    $args .= ', ';
                }
                switch (gettype($a)) {
                    case 'integer':
                    case 'double':
                        $args .= $a;
                        break;
                    case 'string':
                        $a = substr($a, 0, 128) . (strlen($a) > 128 ? '...' : '');
                        $args .= "\"{$a}\"";
                        break;
                    case 'array':
                        $args .= 'Array(' . count($a) . ')';
                        break;
                    case 'object':
                        $args .= 'Object(' . get_class($a) . ')';
                        break;
                    case 'resource':
                        $args .= 'Resource(' . strstr($a, '#') . ')';
                        break;
                    case 'boolean':
                        $args .= $a ? 'True' : 'False';
                        break;
                    case 'NULL':
                        $args .= 'Null';
                        break;
                    default:
                        $args .= 'Unknown';
                }
            }
            if ($sh) {
                if (is_int($sh)) {
                    if ($sh > 0) {
                        --$sh;
                        continue;
                    }
                } elseif ($bt['function'] != $sh) {
                    $sh = null;
                    continue;
                }
            }
            $output .= $bt['file'] . ':' . $bt['line'] . ' ';
            $output .= "{$bt['class']}{$bt['type']}{$bt['function']}({$args})\n";
        }
        return $output;
    }