4

我正在使用 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}

如您所见,是一根巨大的绳子。他们给出的示例将跟踪打印为单独的行。有什么我必须做的吗?

4

2 回答 2

7

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

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

preg_replace("/\n/", '<br>', $trace);
于 2013-02-20T21:24:31.767 回答
2

我为 ZF2 错误日志制作了一些功能,以及 $e->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.
    }
于 2013-09-11T13:28:10.353 回答