[ 先頭 | 上へ | 前へ | 次へ | 目次 | 索引 ]

Analog 4.16: 包含と除外


各項目に別名を付けてから、analog はその項目の表示が望まれているのかどうかを判断します。もし全ての項目が望まれている時のみ、全行が勘定されます。項目が望まれているかどうかは、ユーザによって指定された INCLUDEEXCLUDE コマンドによって決められます。これらのコマンドは、例えば、ローカルのユーザからのリクエストを除外したり、サブディレクトリ中のファイルだけを解析したりするために使われます。例えば、
HOSTEXCLUDE mycomputer.myisp.com
は、そのコンピュータからの全てのリクエストを統計から除外します。

項目が含まれるか除外されるかどうかの規則は、次のようにして決められる。その項目に対する全ての INCLUDEEXCLUDE は、順番に一つずつ考慮され、適合する最後のコマンドにより、その項目が含まれるか或いは除外されるかが決まる。どの INCLUDE あるいは EXCLUDE コマンドにも一致しない項目は、もしそのコマンドが除外ならば含まれるし、もしそのコマンドが包含ならば除外される。例えば、以下の環境設定

FILEINCLUDE /~sret1/*
FILEEXCLUDE /~sret1/backgammon/*,/~sret1/analog/*
FILEINCLUDE /~sret1/backgammon/*.gif
は、私のファイルだけを吟味しろとプログラムに指示し、次に私の backgammon と analog のファイルは除外するが、最後に backgammon ディレクトリ中の gif ファイルだけを含めるように指示する。一方、
FILEEXCLUDE /~sret1/*/img/*
は、私の種々のディレクトリ中の画像ファイルを除いて、全てのファイルを解析する。 (もし全ての包含と除外について混乱したときには、SETTINGS ON を使えば、あなたが指定したオプションが何を意味するかを見ることがいつでも出来ることを思い出してください。)包含と除外は、幾つでもワイルドカードを使え、コンマ(スペースではない)区切りでリストすることができることに注意せよ。

これらのコマンドの完全な一覧は、HOSTINCLUDEHOSTEXCLUDEFILEINCLUDEFILEEXCLUDEBROWINCLUDEBROWEXCLUDEREFINCLUDEREFEXCLUDEUSERINCLUDEUSEREXCLUDEVHOSTINCLUDEVHOSTEXCLUDE;そして STATUSINCLUDESTATUSEXCLUDE である。


幾つかの注意点を以下に述べる。

包含と除外は別名を付けた 後に 処理されるので、使用すべき名前は、別名である。( OUTPUTALIAS コマンドがない時には、これは出力に現れる項目名である。)

時には、行がある特別な項目を含まないことがある。これは、その行にその項目用の場所が無いからか、あるいはそのリクエストに対して、ブラウザーがその項目を送らないから、あるいは存在したのだが、以上行であったからである。これらの行を含めるか削除するかは、 INCLUDEEXCLUDE コマンドに特殊な空の項目を指定することによって可能になる。

USERINCLUDE jim
USERINCLUDE ""
は、 jim というユーザを含む行と、ユーザが指定されていない行を含めることになる。

もしファイルが、検索語 を含むときには、REQINCLUDEREFINCLUDE は、やや直感とは異なる振る舞いをする。

適切な OS では、"REGEXP:" または "REGEXPI:" を表現の頭に付け加えて、包含と除外に対して正規表現が使える。これについては、エイリアスの項ですでに相当ページを割いて説明をしたので、詳細については、そこを参照 して下さい。正規表現は、コンマで区切った一覧内ではなくそれ自身の行になければならない。


STATUSINCLUDESTATUSEXCLUDE コマンドは、他と微妙に異なる。これらは、HTTP の状態コードと共に動作する。(これらのコードは、HTTP 仕様 で定義され、状態コードレポートで見ることが出来る。しかし、これらについてあらかじめ知らないならば、これらのコマンドを実際には使いたくはないでしょう。)コマンドの引数は、コンマで区切られた範囲の一覧である。範囲の片方は空のままであり得るが、これは、最初のコードから、あるいは最後のコードまでの状態コードを意味する。例えば、
STATUSINCLUDE 200-206,304,500-
は、状態コードが 200-206, 304 または 500-599 の行だけを見ることを意味する。

ある人が、状態コード 304 (変更なし)を除外して、リクエストレポートに現れないようにしたいとします。しかしもっと良い方法があります。初期設定で、analog はコード 304 を成功リクエストと勘定します。なぜなら、ユーザにはキャッシュされたページが提供されたと仮定するからです。しかし、以下のコマンドを使って、これをリダイレクトされたリクエストと勘定することも出来ます。

304ISSUCCESS OFF
繰り返しますが、この意味を理解していないならば、初期設定を使用してください。
この分野に属するもう一対のコマンドがあります。FROMTO コマンドです。これらにより、解析する期間が制限されます。これらのコマンドの最も簡単な使用方法は、FROM yyMMdd あるいは FROM yyMMdd:hhmm です。ここで、yy は西暦年度の下2桁を表し ( analog は西暦年度が1970年と2069年の間であると仮定しています )、MM は月を表し、dd は日にちを、hh は時間を、MM は分を表しています。従って例えば、1999年7月1日から2000年6月30日午後1時までのリクエストのみを解析するためには、以下の設定を用います。
FROM 990701
TO   000630:1300
この代わりとしては、各成分の頭に + または - を付けて、プログラムが起動された時刻に相対的な時間を表すことができます。この場合には、日にちは2桁以上になることができます。これを使えば、以下のような設定ができます。
FROM -01-00+01   # 昨年度の明日の日付から
TO -00-0131  # 先月の終わりまで (先月が31日なくても大丈夫です)
FROM -00-00-112
TO   -00-00-01  # 最近16週間の統計
FROM -00-00-00:-06+01  # 最近6時間の統計
FROMTO コマンドに対するコマンドラインの省略形、+F+T があります。例えば、+T-00-00-01:1800 は、昨日の午後6時までの統計を取ります。-F-T は、FROM OFFTO OFF の様に、これらのコマンドの使用を止めます。
大部分のレポートに対して、INCLUDEEXCLUDE コマンドがあります。これらは、特殊なレポートから個々の行を取り除きます。従って例えば、以下のコマンド
REFREPEXCLUDE http://your.site.com/*
は、「リンク元URLレポート」からあなたの内部のリンク元を除外します。しかし、このコマンドでは、内部のリンク元は、「不成功リンク元レポート」、「リンク先レポート」、等からは除外されません。( これを実行するには、FAILREFEXCLUDEREFSITEEXCLUDE 等が必要です。) REFEXCLUDE コマンドと同様に、これらのリンク元があっても、ログファイルの他の解析は妨げられません。また、REFREPEXCLUDE は、レポートの最後の行の "残り" にリンク元を含みます。

これらのコマンド群の全部の一覧は以下の通りです。REQINCLUDEREQEXCLUDE; REDIRINCLUDEREDIREXCLUDE; FAILINCLUDEFAILEXCLUDE; TYPEINCLUDETYPEEXCLUDE; DIRINCLUDEDIREXCLUDE; HOSTREPINCLUDEHOSTREPEXCLUDE; DOMINCLUDEDOMEXCLUDE; ORGINCLUDEORGEXCLUDE; REFREPINCLUDEREFREPEXCLUDE; REFSITEINCLUDEREFSITEEXCLUDE; SEARCHQUERYINCLUDESEARCHQUERYEXCLUDE; SEARCHWORDINCLUDESEARCHWORDEXCLUDE; REDIRREFINCLUDEREDIRREFEXCLUDE; FAILREFINCLUDEFAILREFEXCLUDE; BROWSUMINCLUDEBROWSUMEXCLUDE; FULLBROWINCLUDEFULLBROWEXCLUDE; OSINCLUDEOSEXCLUDE; VHOSTREPINCLUDEVHOSTREPEXCLUDE; USERREPINCLUDEUSERREPEXCLUDE; と FAILUSERINCLUDEFAILUSEREXCLUDE。もし、出力の別名 を使用しているときには、包含と除外は、別名を付ける前の名前に適用されます。

適切な INCLUDEEXCLUDE コマンド内で、象徴的な言葉 pages を使うこともできる。非常によく使われるコマンド

REQINCLUDE pages
は、リクエストレポート中のページだけを含めるようにする。
analog はPAGEINCLUDEPAGEEXCLUDE と呼ばれるもう一つ別の対の INCLUDE/EXCLUDE コマンドを使って、どのファイルがページとして勘定されるか (従って、どのリクエストがページリクエストとして勘定されるか) を決定する。初期設定では、(大小文字に無関係) *.html*.htm*.asp それにディレクトリ ( */ ) がページとして勘定される。しかし、以下のコマンドでこれを変えることができる。
PAGEINCLUDE *.ps,*.ps.gz
PAGEEXCLUDE /sret1.html
即ち、ポストスクリプトファイルと gzip で圧縮されたポストスクリプトファイルがページとみなされるが、/sret1.html はページとはならない。(もしファイルが 検索引数 を持っているときには、PAGEINCLUDEPAGEEXCLUDE は、疑問符の前のファイル名の部分に対してだけ考慮される。)
もう一対の INCLUDEEXCLUDE コマンドをこれから説明しよう。「リクエストレポート」と3つのリンク元レポート (「リンク元レポート」、「リダイレクションされたリンク元レポート」それに「不成功リンク元レポート」) 中で、analog は一覧に載せているファイルへのリンクを張ることができる。「リクエストレポート」には、LINKINCLUDELINKEXCLUDE というコマンドがあり、3つのリンク元レポートには、REFLINKINCLUDEREFLINKEXCLUDE があり、これらは、どのファイルがリンクを張られるかを正確に指定する。例えば、
LINKINCLUDE pages
は、リクエストレポート中でページにリンクを張る。または、
LINKINCLUDE *.pdf
は PDF ファイルにリンクを張る。リクエストレポート中のリンクの目標は、BASEURL コマンドによっても影響を受けることに注意せよ。
最後の INCLUDEEXCLUDE コマンドは、URL の最後の引数を含めるか除外するかを決める。しかし、これらにはやや込み入った事情が存在し、新しい章 でこれらについて述べる。
analog のホームページ

Stephen Turner
2001年2月13日

analog についての質問は analog-help メーリングリスト をお使いください。

[ 先頭 | 上へ | 前へ | 次へ | 目次 | 索引 ]