古いlog4phpで、「%L」や「%F」で「NA」と出力されてしまう問題への対処方法
プロジェクトで使用しているlog4phpで、エラー発生ファイルと行番号を出力させようとしたところ、以下のようになってしまった。
2012-04-12 18:04:35,882 DEBUG index.php - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX NA:NA
原因を調べてみたところ、どこぞのPHPのフレームワークの
メーリングリストで同様の問題が発生しているという情報を発見。
http://www.pradoframework.com/forum/index.php?PHPSESSID=klc2phfr9dvaogtturuholq443&topic=64.5;wap2
どうやら、log4php/spi/LoggerLoggingEvent.phpに問題があるようです。
187行目の
$hop = array_pop($trace);
としているコードを
$locationInfo = array_pop($trace);
と変更しろとのこと。
実際にやってみたところ、無事ファイル名・行番号が記録されるようになりました。
バージョンを上げれば良いのですが、
色々と大人の事情があって応急処置ってことで。