1

PHP スクリプト内でトレース ログを開始し、デバッグ ログを有効にすることは可能ですか。私はEclipse + xdebugを探していませんが、次のようなユースケースを探しています:スクリプトが開始されると、$_GET["debugme"]設定されているかどうかがチェックされます。はいの場合は、と言ってstart_trace_log()ください。その後、スクリプトの残りの部分で発生したことはすべてログに記録する必要があります。

scriptA.php :10 include("anotherscript.php")

anotherscript.php:1 foo()

...

現時点では、ログに記録したいスクリプトと、$_GET["debugme"]このスクリプト実行内で単純にすべてをデバッグするのではなく、スクリプトがチェックする必要があるすべてのスクリプトに対して手動でこれを行う必要があります。時折スクリプトをチェックするのは非常に不快です。

開始点から最後の行までphpスクリプトをトレースするためのより良いアイデアや快適な方法はありますか?

4

3 に答える 3

1

phptraceは、スクリプトを変更する必要がなく、いつでもトレースできるため、より良い選択かもしれません。

于 2015-01-07T07:59:51.933 に答える
1

この行を終了またはフッター スクリプトの最後に追加します。これにより、
if(isset($_GET["debugme"]))debug_print_backtrace(); #... function-name() called at script-path.php:linenumber などの詳細が出力されます。

debugme 機能を開発システムでのみ実行するように制限することを忘れないでください。

于 2012-06-18T20:59:41.433 に答える
0

これを本番環境で使用すると非常に煩わしいと思いますが、次のコードを投げることができます。

if(isset($_GET['DEBUGME'])) {
    start_trace_log();
}

ファイルに追加し、そのファイルを PHP に追加してauto_prepend_file、すべての PHP スクリプトの開始時に実行されるようにします。

もちろん、これは既にコード化してインクルードしていることを前提としていますstart_trace_log()。これも開発サーバーにのみ含める必要があります。デバッグ フラグが設定されたスクリプトは、本番環境に移行するべきではありません。

于 2012-06-18T13:04:58.743 に答える