清理日志的堆栈跟踪

时间:2016-04-21 21:06:50

标签: php debugging zend-framework2

我有几个类(a,b,c等)扩展了一个名为mother的抽象类。所有的儿子"使用方法"保存":

<?php

class mother {
    public function save() {
        echo "Mother saves!\n";
        debug_print_backtrace();
    }
}

class a extends mother {
    public function save() {
        echo "Calling save from A\n";
        parent::save();
    }
}

$test = new a;
$test->save();

?>

如果你运行这段代码,debug_print_backtrace的结果非常干净,这正是我需要的:

#0 mother->save() called at [/home/xfiddlec/public_html/main/code_44364601.php:13] #1 a->save() called at [/home/xfiddlec/public_html/main/code_44364601.php:18]

问题是,如果你正在使用一个框架(我使用Zend2),堆栈跟踪超过1MB,一个巨大的字符串。如果有办法我可以限制跟踪覆盖范围?对于我的应用程序有文件,扩展母亲的类和行的名称是足够好的。

1 个答案:

答案 0 :(得分:0)

如果我理解正确的问题答案很简单。抛出并捕获异常

try{
    throw new Exception();
}catch( Exception $e ){
    echo $e->getTraceAsString();
}

这是我用于调试的巧妙技巧。此外,您可以将跟踪作为数组获取并使用切片或其他内容。

相关问题