(2011/1/26変更:ログのローテーションはLinuxだったらlogratateに任せればいいかなと思ってWindows限定の書き方をしたけど、Windowsじゃなくてもrotatelogsを使いたい場面はあると思い変更した。)
Apacheのログ出力設定のメモ。
こんなことをしたい場合の例。
- SetEnvIfとenv=!を使って、任意のアクセスをログ出力対象外にする
- ログ内容のフォーマットはcombinedで (もっと詳しくログりたい場合は自分でフォーマットを作る)
(Windowsの場合、)Apacheに標準で付いてくるrotatelogsを使って任意の時間でログファイルを分割する
#ログに残さないアクセス元
SetEnvIf Remote_Addr 127.0.0.1 nolog
#前方一致でも可
SetEnvIf Remote_Addr 192.168. nolog
#月ごとにローテーションする場合は%Y%m
CustomLog "|bin/rotatelogs -l logs/access_%Y%m.log 86400" combined env=!nolog
と、思ったら3年前に自分で既にメモしていた... → floatingdays: ApacheでURIに応じてアクセスログを分ける方法