Tips記事
» 2001年10月17日 00時00分 UPDATE

Apacheのログフォーマット内容が知りたい

[木田佳克,ITmedia]

 httpサーバのApacheが書き出すアクセスログ(acsess_log)は,環境設定ファイル(httpd.conf)の中で定義されている。どのようなログフォーマットで記録するのかは,自由にカスタマイズすることが可能だ。まず最初に,httpd.confの中から次のような行を見つけ出そう。

# cat /usr/local/apache/conf/httpd.conf | more
あるいは,
# cat /etc/httpd/conf/httpd.conf | more

LogFormat "%h %l %u %t \"%r\" %s %b"

 この構文で「%」が付く変数一覧は次の通りだ。

表1■LogFormat変数
%h
リモートホスト名
%l
identによるリモートユーザ名
%u
ユーザ認証によるリモートユーザ名
%t
アクセス日時
%r
httpリクエストヘッダ
%s ステータスコード
%b 転送バイト数
&U リクエストされたURLアドレス
%v サーバ名
%{STRING}i リクエスト内のSTRING内容
%{STRING}o レスポンス内のSTRING内容
%f アクセスファイル名

 表1に挙げた「%{}」で示される変数は任意の内容を参照するものだ。たとえば、「%{User-Agent}i」はリクエストヘッダ内のUser-Agentフィールド内容を示す。

LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\""

 上記の定義を行った場合,アクセスログには次のように記録される。色分けをしたので見比べてほしい。

xxxx.zdnet.co.jp - - [17/Oct/2001:19:40:23 +0900] "GET /mrtg/snmp.1day.gif HTTP/1.1" 200 2426 "http://www.zdnet.com/""Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1)"

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ