Apache log4php を使用し、クラスのヘルパー メソッドによって呼び出されます。
class MyClass{
function log($msg, $level='info'){
$log = @Logger::getLogger("MyLogger");
$log->$level($msg);
}
}
上記のコードの問題は、ロガーの file:line 列が常にヘルプ メソッドの行番号を報告することです。PHP の debug_backtrace() を使用して、ヘルパー メソッドを呼び出す元の行番号とファイルを取得できます。
$bt = debug_backtrace();
$caller = array_shift($bt);
私の質問は、私のヘルパー メソッド内で file:line 列を設定する方法はありますか? Logger::method か何かを上書きする必要があるのではないかと考えています。