そこで、デバッグメッセージをその場でログに記録できるメソッドを作成しようとしています。メッセージが発生したファイル名と行番号を含めたいと思います。私の最初の傾向は、現在のファイル名と行番号を含む配列を返すloggingメソッドの引数の1つとしてdebug_backtrace()を指定することでした。
問題は、これは(index.php)と呼ばれる最初のファイルのファイルと行のみを提供することです。index.phpは、インクルードされたファイルのクラスからメソッドを呼び出す5行のファイルにすぎないため、行とファイルの情報は、何があっても常に(index.php、5行目)と表示され、役に立ちません。
コードのどこにいても、現在の行とファイルを取得する方法はありますか?
添加
ファイルと行の情報は次のとおりです。
[2011-01-23 06:26:10]情報: "存在しないコントローラー(テスト)に対してリクエストが行われました。"、ファイル: "/home/spotless/public_html/mymvc/index.php"、行:5、リクエスト: "/テスト"
index.php全体は次のとおりです。
<?php
include_once('application/init.php');
lev_init::init();
?>
init.phpファイル内のdebug_backtrace()を使用したロギング呼び出しは次のとおりです(37行目)。
// 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
array(1){[0] => array(6){["file"] => string(42) "/home/spotless/public_html/mymvc/index.php" ["line"] => int(5 )["function"] => string(4) "init" ["class"] => string(8) "lev_init" ["type"] => string(2) "::" ["args"] = > array(0){}}}