デバッグメッセージを即時にログに記録できるメソッドを作成しようとしています。メッセージが出現したファイル名と行番号を含めたいと思います。私の最初の傾向は、現在のファイル名と行番号を含む配列を返すloggingメソッドの引数の1つとしてdebug_backtrace()を与えることでした。デバッグログのファイルと行のトレースに関する問題(PHP)
問題は、最初のファイル(index.php)のファイルと行だけです。 index.phpはインクルードされたファイル内のクラスからメソッドを呼び出す5行のファイルですが、行とファイルの情報は何が何であっても無駄なことは常に(index.php、line 5)と言います。
コード内の現在の行とファイルを取得する方法はありますか?
[2011-01-23六時26分10秒]インフォメーション::非existant コントローラのために作られた 「リクエスト(ここで
追加
は、ファイルと行情報ですテスト)」、ファイル: "/home/spotless/public_html/mymvc/index.php"、 ライン:5、要求: "/テスト"
H EREは、その全体のindex.phpである:ここ
<?php
include_once('application/init.php');
lev_init::init();
?>
はinit.phpファイル(ライン37)内debug_backtraceを使用してロギング・コール()、である。
// if requested controller does not exist, log
lev_logging::message('Request made for non-existant controller ('.$requested_controller.').', debug_backtrace());
第2の更新
debug_backtraceののvar_dump
["class"] => string(8) "lev_init" ["type"] =>文字列(2) "::" ["args"] =>アレイ(1){[0] =>アレイ(6){[ "ファイル"] => 文字列(42) " /home/spotless/public_html/mymvc/index.php " [" line "] => int(5)[" function "] => string(4)" init "0" {}}}
そうではありません。バックトレースには完全な情報が含まれている必要があります。それは配列であると認識していますか?あなたはバックトレースの例を見せてもらえますか? –
@dqhendricks:すべての関数呼び出しの現在の行とファイルがドキュメントに表示されていることを確認してください。 – RageZ
あなたの説明から、これはむしろ '__FILE__'と' __LINE__'定数を必要とします。 – mario