Software Engineer and Web Developer's Diary

1年後の自分に向けて

log4php で Segmentation fault

log4php をサーバーにセットアップすると以下のようなエラーが発生しました。

[notice] child pid 10388 exit signal Segmentation fault (11)


めっちゃ悩んだ結果、答えは、log4phpソースコードのヘッダーコメントに日本語の文字コードで解釈できない文字があり、そこでひっかかっていたようです。
全てのソースを euc lf に変換することで Segmentation fault エラーは発生しなくなりました。
vtiger Open Source CRM Discussions を見て log4php のバグだと勘違いして調べていた自分がばからしい。

あとは PHP/CakePHP/CakePHPのログをLog4phpに切り替える - Happy Engineer Life を参考に log4php のバグを直すだけ。

log4phpLoggerPropertyConfigurator.phpの509行目 の正しい修正は &parseCategory → parseCategory となる。


log4php.properties の設定は以下のとおり

log4php.rootLogger=DEBUG, R
log4php.appender.R=LoggerAppenderRollingFile
log4php.appender.R.file=/..絶対パスで../app/tmp/logs/error_log.txt
log4php.appender.R.layout=LoggerPatternLayout
log4php.appender.R.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4php.appender.R.MaxFileSize=10240
log4php.appender.R.MaxBackupIndex=3