如何将PHP回溯保存到错误日志?

问题描述 投票:26回答:5

我现在正在使用它:

error_log(serialize(debug_backtrace()));

但我每次都必须对它进行反序列化。是否有更好的存储回溯的方法?

php error-handling backtrace
5个回答
41
投票

这应该生成一个可读的字符串:

error_log(print_r(debug_backtrace(), true));

另外,debug_print_backtrace()将后跟踪打印为字符串,并且可以使用常规输出缓冲区函数捕获其输出:

ob_start();
debug_print_backtrace();
error_log(ob_get_clean());

8
投票
    $log = var_export(debug_backtrace(), true);

然后使用变量$log登录文件或者什么。


7
投票

从我的角度来看,最好的方法是使用异常功能:

$e = new Exception();
$e->getTraceAsString();

4
投票

有点难看但可行,我这样做:

 error_log('Identifying string so that it doesn\'t just end up as gibberish' . json_encode(debug_backtrace()));

0
投票

以下内容可以写入.txt文件,也可以访问它的内容(如$ content [0]),而不是var_export,我觉得有点棘手:

    $content = unserialize(serialize(debug_backtrace()));
© www.soinside.com 2019 - 2024. All rights reserved.