Apacheで自動ログローテーションの設定(Win版)


こんばんは。中小零細企業のIT経営をお手伝いしているIT経営コンサルタントの川上です。
以前、別のブログで備忘録に書いた記事の転載です。

久しぶりにApacheをインストールしたら色々設定を度忘れしていたので今後のためにメモ。
レンタルサーバなら気にすることも少ないけど、自鯖だとログデータが大きくなるとパフォーマンスやHDDの圧迫に繋がるので忘れず設定。
サイトのアクセス数が少なければ気にする必要もないんですけどね。

httpd.conf を編集。

CustomLog “logs/access.log” common

をコメントアウトして

#CustomLog “logs/access.log” common
CustomLog “| bin/rotatelogs.exe logs/access_%Y-%m.log 2592000” combined

に修正。
これで30日毎にログファイルが自動で分割されるハズ。

ついでにerror.logも同様に分割設定

# ErrorLog “logs/error.log”
ErrorLog “| bin/rotatelogs.exe logs/error_%Y.log 2592000”

ちなみに、一日単位で分割したいときは

CustomLog “| bin/rotatelogs.exe logs/access_%Y-%m-%d.log 86400” combined

みたいな感じで。
86400が1日の秒数(60秒×60分×24時間)なのでお好みの秒数で指定する。
86400はCMSの設定などでもよく見かける数字なので覚えておいても良いかも。