問題があります。バックトレースを特定のケースでログファイルに記録したいと思います。 debug_print_backtrace()
は私の目的のために正しい文字列を作りますが、debug_print_backtrace()
はそれを返す代わりに画面にトレースを表示します。ログファイルのdebug_print_backtrace()への文字列
アイデア?
問題があります。バックトレースを特定のケースでログファイルに記録したいと思います。 debug_print_backtrace()
は私の目的のために正しい文字列を作りますが、debug_print_backtrace()
はそれを返す代わりに画面にトレースを表示します。ログファイルのdebug_print_backtrace()への文字列
アイデア?
別の機能を使用してください。
$data = debug_backtrace();
するか、フォーマットされた出力文字列を出力バッファリングを使用します:
ob_start();
debug_print_backtrace();
$data = ob_get_clean();
それも少ないコードでそれを行うことは可能ですが、実際にdebug_backtrace()はあなたがフォーマット、をループして保存することができます配列を返します。あなたの$ ERROR_STRINGに保存されdebug_print_backtrace()
とまったく同じ出力を与える...
$error_string = (new Exception)->getTraceAsString();
とバッファリングのオーバーヘッドを回避します。これは、ログ記録の目的のために非常に十分である
$error_string = print_r($e->getTrace(), true);
そして、あなたは(など、行番号、ローカルオブジェクトVARS、)より多くの貴重なスタックトレース情報を取得したい場合は、してみてください...:
$this->log(print_r(debug_backtrace(), true));
ありがとうございます! :)作品 – phip1611