ti-enxame.com

Como posso salvar um PHP backtrace no log de erros?

Estou usando isso agora:

error_log(serialize(debug_backtrace()));

Mas tenho que desserializar isso toda vez. Existe uma maneira melhor de armazenar backtraces?

28
Leo Jiang

Isso deve gerar uma sequência legível:

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

Além disso, debug_print_backtrace () imprime o rastreamento posterior como string e sua saída pode ser capturada com funções regulares do buffer de saída:

ob_start();
debug_print_backtrace();
error_log(ob_get_clean());
42
Álvaro González
    $log = var_export(debug_backtrace(), true);

Então use a variável $log para fazer login no arquivo ou o que for.

8
Pramendra Gupta

Na minha perspectiva, a melhor abordagem é usar uma funcionalidade de exceção:

$e = new Exception();
$e->getTraceAsString();
7
Igor Sydorenko

Um pouco feio, mas viável, faço o seguinte:

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

O seguinte pode ser gravado em um arquivo .txt ou você também pode acessar o conteúdo (como $ content [0]) em oposição a var_export, o que é um pouco mais complicado:

    $content = unserialize(serialize(debug_backtrace()));
0
Robert Sinclair