この特集のトップページへ
この回のトップページへ

ログ書式指定の実際

 ここで実際の指定方法を説明してみよう。たとえば,Apacheのreferer_logをカスタマイズして記録していたとしよう。 一般的にreferer_logはhttpd.conf内で次のような形式で設定されている。

LogFormat "%{Referer}i -> %U" referer

 しかし,このreferer_logには時刻情報が含まれていないため,ApacheのCustomLogで時間情報を付加している必要がある。具体的には,次のように設定している場合を挙げよう。

LogFormat "%t %{Referer}i -> %U" referer

 すると,実際のreferer_logには次のように記録される(2行)。

[11/Sep/2000:00:33:11 +0900]
http://www.goo.ne.jp/default.asp?MT=
VAIO+redhat&WTS=ntt&SM=MC&DE=2&DC=10&_v=2 -> /linux/vaio
[11/Sep/2000:00:33:12 +0900]
http://www.goo.ne.jp/default.asp?MT=
VAIO+redhat&WTS=ntt&SM=MC&DE=2&DC=10&_v=2 -> /linux/vaio/

 このログ形式では,Apacheの一般的な形式には当てはまらないためカスタマイズする必要がある。しかし,「%{Referer}i」という変数を利用しているために,APACHELOGFORMATを用いて指定することはできない。この情報を元にログ解析を行うには,LOGFORMATで次のように設定する必要がある。

LOGFORMAT ([%d/%M/%Y:%h:%n:%j +0900] %f -> %r)
LOGFILE /usr/local/httpd/logs/referer_log

 ApacheのCustomLogで使用した「%t」,つまり時刻情報を,AnalogのLOGFORMATでは「[%d/%M/%Y:%h:%n:%j +0900]」と書式指定するとAnalogで利用することができるようになる。

 このように,Apacheでカスタマイズされたログファイルであっても,LOGFORMATを用 いて書式を自由に指定できるのだ。柔軟に解析ログを作成できるのがAnalog の持つ強みといえるだろう。

PREV 8/10 NEXT