カメニッキ

カメとインコと釣りの人です

古い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);

と変更しろとのこと。
実際にやってみたところ、無事ファイル名・行番号が記録されるようになりました。

バージョンを上げれば良いのですが、
色々と大人の事情があって応急処置ってことで。