(2007/11/05:変更
ローテーションのトリガーをファイルサイズから時間に変更。こうしないと年月単位のログにならない
ここで指定する時間は、1970/1/1 0:00:00からの経過時間を元に計算される。Apacheを起動/再起動してからの時間ではない。
また、GMT以外の日付を使う場合は"-l"オプションを付ける。
参考:[Apache-Users 6474] Re: rotatelogs の時刻設定 )
Apache付属のrotatelogsを使えば簡単にできる。
httpd.confで、CutomLogの設定を下記のようにする。
CustomLog "|bin/rotatelogs logs/access.%Y%m.log 5M" common
CustomLog "|bin/rotatelogs -l logs/access.%Y%m.log 86400" common
ファイルサイズ(この例では5MB)は環境に合わせて変える。
最後のcommonのとこは忘れがちなので注意。(これも状況に合わせて変える。)
envとか付けたいなら付けられるのは普通のCustomLogと一緒。
マニュアルを見るとErrorLogについてもできるようだが、Apache2.2.5/Windowsの環境ではできなかった。(Apacheが起動しなかった。)
でもよく考えたらエラーログはそんなに肥大化しないから、ローテーションする必要ない。
(2007/11/01 追記)
rotatelogsを使うと、Windowsのプロセスがどんどん増えていった。Apache2.2.4~2.2.5のバグ?(Apache 2.2.4でrotatelogs - 負けないように頑張る日記)
Apacheを2.2.6に上げたら解消された。
0 件のコメント:
コメントを投稿