getTraceAsString()打印出一整行

时间:2013-02-20 21:20:05

标签: php string exception stack-trace

我正在使用php方法getTraceAsString(),它会抛出我的错误消息,如:

#0 /var/www/wordpress/wp-content/themes/Aisis-Framework/AisisCore/Template/Builder.php(147): AisisCore_Template_Builder->_render_template_array(Array, 'navigation') #1 /var/www/wordpress/wp-content/themes/Aisis-Framework/index.php(3): AisisCore_Template_Builder->render_view('navigation') #2 /var/www/wordpress/wp-includes/template-loader.php(47): include('/var/www/wordpr...') #3 /var/www/wordpress/wp-blog-header.php(16): require_once('/var/www/wordpr...') #4 /var/www/wordpress/index.php(17): require('/var/www/wordpr...') #5 {main}

正如你所看到的那样是一根巨大的弦。他们提供的示例将跟踪打印为单独的行。为了得到它,我有什么必须做的吗?

2 个答案:

答案 0 :(得分:5)

这是一个包含换行符的字符串,而不是HTML。查看页面的源代码。

将输出包装在<pre></pre>标签中,或用HTML换行符替换换行符。

preg_replace("/\n/", '<br>', $trace);

答案 1 :(得分:1)

我为ZF2错误日志做了一些功能,以及格式化, 的 $ E-&GT; getTraceAsString();

希望这对你有所帮助。

public function Errorcatch(\Exception $e) {
        $log = "<div class='error_main'>";
            $log.= "<br /><b>Error Time :</b>" . date('Y-m-d H:i:s A');
            $log.= "<br /><b>Error Code :</b>" . $e->getCode();
            $log.= "<br /><b>Error Message :</b>" . $e->getMessage();
            $log.="<br /><b>Error File :</b>" . $e->getFile();
            $log.="<br /><b>Error File Line :</b>" . $e->getLine();
             $log.="<br /><b>Error Trace :</b><br />" . preg_replace("/\n/", '<br>', $e->getTraceAsString());
        $log.= "</div>";
        $this->getServiceLocator()->get('Zend\Log')->info($log); // This line write the log file.
    }