Home > apache > apacheのログを整形して携帯端末IDを出したり、画像ファイルのログを出力させないようにする

apacheのログを整形して携帯端末IDを出したり、画像ファイルのログを出力させないようにする

デフォルトでapacheは画像ファイルのログを出すのだけれど、
ログが肥大するし、あまり見ないので、こちらを消してしまいます。
あとついでにログの出力方法を調整したり、日別の集計にしたり、携帯用の設定を追加してみたりしてみる。

apacheのログ関連設定はhttpd.confのこの周辺部分に書いておきます。

<IfModule log_config_module>
</IfModule>

上記<Ifmodule log_config_module…の中に書いていきます。

まずはエラーログから

ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error.log.%Y%m%d 86400"

エラーログはerror.log.20081016のような形式で日別に出すということ。
86400はこの秒数(この場合1日)でログをローテートするの意味。

そしてその下あたりにログレベルを記載

LogLevel warn

どのレベルでエラーログを出すかということです。
詳細はこちら↓
LogLevel ディレクティブ

次はアクセスログの設定。

まずはログの書式設定

LogFormat "%h %l %u %t \"%r\" %>s %b \"%U\" \"%q\" \"%{User-Agent}i\" \"%{cookie}i\" \"%{Referer}i\" \"%{X-Up-Subno}i\" \"%{x-jphone-uid}i\" \"%{X-DCMGUID}i\"" combined

内容は以下のようになってます

リモートホスト リモートログ名 リモートユーザ 時刻 リクエストの最初の行 ステータスコード レスポンスのバイト数 リクエストURL クエリーストリング(?=の値) UserAgent cookie リファラー auの端末ID SoftBankの端末ID DoCoMoの端末ID

ちなみにログの書式は以下を参考に。
カスタムログ書式
combinedはこの書式をcombinedという名前に設定という意味。

次はログ出力の方法

CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log.%Y%m%d 86400" combined env=!nolog

こちらはエラーログのときと同じです。
combinedは上で設定したcombinedという書式で出力するという意味。
env!=nologはnologと設定したデータは表示させないという意味です。
ここで、nologを設定します。

SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)$" nolog

これは、拡張子がgif,jpg,png,css,jsのリクエストをnologという名前にしたという意味です。
CustomLogでenv!=と指定しているのでコレジャナイってことですね!

できたものはこんな感じです。

<IfModule log_config_module>
ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error.log.%Y%m%d 86400 540"
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%U\" \"%q\" \"%{User-Agent}i\" \"%{cookie}i\" \"%{Referer}i\" \"%{X-Up-Subno}i\" \"%{x-jphone-uid}i\" \"%{X-DCMGUID}i\"" combined
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access.log.%Y%m%d 86400 540" combined env=!except-request
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)$" except-request
</IfModule>

これでapacheを再起動するといらないファイルが出ない日付別のログファイルが出力されるようになりました。めでたしめでたし。

関連記事

このブログを書いているsayjiroは最近会社を立ち上げました。小さな小さな会社ですが、一緒に働く仲間を探している今日この頃です。
社員が僕しかいない小規模零細企業ですが、自由に楽しく仕事をしつつWebを使って面白いことができればと思ってます。

募集している人物像:向上心がある・Webともの作りが好き(ある程度経験があると嬉しいですが、未経験でもやる気があれば可です)
お仕事内容:Web周り全般。サイト制作やデザイン、システム構築やiPhoneアプリ開発などいろいろです。
働く形態:その人に合わせて応相談(在宅とかでもいいです)


→興味がございましたらこちらからお気軽にご連絡ください!

コメント:0

コメントフォーム
設定を保存する

トラックバック:0

この記事のトラックバックURL
http://sj6.org/plastic_apche_log_for_mobile_and_image/trackback/

Home > apache > apacheのログを整形して携帯端末IDを出したり、画像ファイルのログを出力させないようにする

フィードとか

ページの上へ