by shigemk2

当面は技術的なことしか書かない

つらいlog4php

とっても久々なPHP。

Apache log4php - LoggerAppenderRollingFile - Apache log4php

PHPのロギング用ライブラリ。でもね、調べたんだけど、

  • デフォルトはapplication.log
  • 前日以前のログはapplication.log.YYYY-MM-DD.gzで固める
  • 一定より昔のログは消す

こういう感じのログローテーションってlog4phpでは出来ないんだよね。

application.log.2016-05-07.gz
application.log.2016-05-08.gz
application.log.2016-05-09.gz
application.log.2016-05-10.gz
application.log.2016-05-11.gz
application.log

似たようなのにLoggerAppenderDailyFileっていうのがあるんだけど、こういう感じのログしか作れないんだよ。しかも古いのは消せない。

application.log.2016-05-07
application.log.2016-05-08
application.log.2016-05-09
application.log.2016-05-10
application.log.2016-05-11
application.log.2016-05-12

さらに似たようなのにLoggerAppenderRollingFileっていうのがあるんだけど、古いファイルは消せるんだけどバックアップファイルはナンバリングしか出来ないんだ。

application.log.4
application.log.3
application.log.2
application.log.1
application.log

つらい。確かに同じことをするためにはシェル芸とcronでごにょごにょしたらいいよ。いいんだけど、ログのローテートの設定ってアプリケーションの中で完結させたいと思いませんか?Ansibleとかでcron設定を撒くならまだしも、本番サーバに入って直接作業するのは嫌です。

これは、つまり、お前が開発者になるんだよ!と誰かが囁いているんだろうか。