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

Readme for analog3.90beta2

エイリアス(別名)

analogがログファイルの各行を読み取ると、analogは各項目にエイリアスを適用します。もし大小文字を区別しないファイルシステムなら、analogはファイル名を小文字に変えます。普通analogは、Unixファイルシステムは大小文字を区別し、それ以外のシステムは区別しないと仮定します。例えば、もしファイルを別のコンピュータへ転送しても、元のマシーンでの条件でも使えるように、この仮定を無視したい場合があるかもしれません。そのときは下記のコマンドで可能になります。
CASE INSENSITIVE
CASE SENSITIVE

次に、analogは内蔵のエイリアスをそれぞれの項目に適用します。例えば、ファイル名や参照元の中の %7E~と同等であり、それに応じて翻訳します。また、ディレクトリからファイル名の接尾辞を取り除きます。この接尾辞は通常は index.htmlですが、下記のコマンドにより、別のものに変更できます。

DIRSUFFIX default.htm
DIRSUFFIXは1つだけ指定できます。)別の内蔵エイリアスもあります:例えばホスト名は、この時点で小文字に変換されます。
このあと、analogはユーザー定義のエイリアスを適用します。例えば、もしあなたが二つのファイル名が同ファイルに対応していると知っているときや、内部のホスト名をインターネット上の正式名称に変換したい場合に、これらのエイリアスは役に立ちます。 下記のようなコマンドによってエイリアスを明記します。
FILEALIAS /football.html /soccer.html
HOSTALIAS lion lion.statslab.cam.ac.uk
他の全てのエイリアスを打ち消す、特別なコマンド FILEALIAS none もあります。

他の項目に対するエイリアスには BROWALIAS,REFALIASUSERALIASそしてVHOSTALIAS があります。各項目に対しては、1回だけエイリアスが適用されます。

FILEALIAS /football.html /soccer.html
FILEALIAS /soccer.html /brazil.html
ファイル /soccer.html/brazil.htmlへ変換されますが、/football.html/soccer.html にだけ変換され、2個目のエイリアスは適用されません。

エイリアスコマンド中ではワイルドカード(?*)も使えます。また右側では、元の * と一致する元の名前の一部を表すように $1$2 等も使えます。 特別な略記として、もし左側に * に対応して1個の名前しかないときには、右側の *$1 と同等です。例えば

FILEALIAS /*/football/* /soccer/
/sport/football/rules.html/soccer/へ変換します。 しかし
FILEALIAS /*/football/* /$1/soccer/$2         # or
FILEALIAS /sport/football/* /sport/soccer/*
のどちらも/sport/football/rules.html/sport/soccer/rules.htmlへ変換します。

analogの * は何でも表すわけではありません:もし2種類の可能な一致の仕方があれば、左側の表現ができるだけ短くなるような一致の仕方を取ります。これはあなたが望む以上にしばしば起きます。しかし、これは例えば Perl の正規表現と対照的です。(2個の連続する*は全く意味を持ちませんが、もしそれを試したら、$1$2などをそれに当てはめる前に、1個の*になってしまいます。)

もし、ファイルが検索引数を持つときには、FILEALIASREFALIASの振る舞いはやや直観からはずれます。

Unixユーザーへの注意:もしALIASコマンドを+Cを伴うコマンド中に書いたら、シェルは $1 等を適用したり展開したりして、あなたが望まない結果を出すでしょう。このシェルの振る舞いを止めるには、2重引用符の代わりに1重引用符中にコマンドを書くことです。


出力エイリアス と呼ばれる一連のコマンドがあります。タイムレポート以外の各レポートに対して、対応するこのコマンドがあります。ログファイルが読み込まれる時に各項目に適用するのではなく、出力の各行に対して適用されます。例えば、以下のコマンド
TYPEOUTPUTALIAS .txt ".txt (Plain text files)"
はファイルタイプレポート中でその行の説明を挿入します。

いくつかの ALIASOUTPUTALIAS の コマンドは混乱を引き起こすかもしれません。例えば、HOSTALIASHOSTOUTPUTALIAS の違いはなんでしょうか。実際には、別名が処理される時間による違いによる、数種類の違いがあります。HOSTALIAS はホストの 項目 に適用されますが、HOSTOUTPUTALIASホストレポート中の行 に適用されます。これは、HOSTALIAS はドメインレポートのようにホスト名を使う他のレポートにも影響を及ぼすことを意味します。ところが、HOSTOUTPUTALIAS はホストレポートにだけ作用します。また、HOSTOUTPUTALIAS はホストレポートの各行に別々に適用されます。これは、もし二つの異なるホスト名を HOSTALIAS コマンドで一つの同じホスト名に変換したら、それらはそれ以降ずっと一つのホスト名になることを意味します。しかし、もし同じように HOSTOUTPUTALIAS コマンドが使われたら、それらは一つのレポート中ではたまたま同じ名前を持つ、二つの異なるホストになります。

要約すると、HOSTALIAS はふつう、1個のホストが2つの異なる名前を持つときに使用されます。したがって、2つのホストは他の場合には異なるように見えます。一方、HOSTOUTPUTALIAS は普通ホストレポートに注釈をつけたり、説明を付け加えたりするために使われます。

output aliase の全リストは以下の通りです。 REQOUTPUTALIAS, REDIROUTPUTALIAS, FAILOUTPUTALIAS, TYPEOUTPUTALIAS, DIROUTPUTALIAS, HOSTOUTPUTALIAS, DOMOUTPUTALIAS, ORGOUTPUTALIAS, REFOUTPUTALIAS, REFSITEOUTPUTALIAS, REDIRREFOUTPUTALIAS, FAILREFOUTPUTALIAS, BROWOUTPUTALIAS, FULLBROWOUTPUTALIAS, OSOUTPUTALIAS, VHOSTOUTPUTALIAS, USEROUTPUTALIAS そして FAILUSEROUTPUTALIAS です。

OUTPUTALIASに対して知られたバグが1つあります。レポートは OUTPUTALIAS が適用される前に分類されます。これはもしそのレポートに対して SORTBYアルファベット順 に設定されていたら、そのレポートは正しく分類されないことを意味します。


もし正規表現を使う OS のときには( Unix だけかもしれませんが)、ALIAS コマンドの中にそれらを含むことができます。そうでなければ、次章に移ったほうが良いかもしれません。

残念ながら、もしまだ知らない人がいても、ここでは私は正規表現の使いかたを教える積りはありません。:もしUnix上でならば、man regex あるいは man grep と打ってみて下さい。正規表現の例題がたくさんあります。analog が使うのは、Unix の egrepのような、POSIX 流に拡張した正規表現です。もしPerl あるいはGNU の grep -E の正規表現をよく知っているなら、それらと全てが同じものを見つけるとはかぎらないでしょう。

"REGEXP:" をエイリアスの左側の前につけることによって、ALIASコマンド中に正規表現を含むことができます。あるいは、"REGEXPI:" を使うことによって Unix の egrep -i のように大小文字の区別をしない一致検索を指定することができます。(もし、CASE INSENSITIVE と明記したら、ホスト名やファイル名のような多くの項目は自動的に大小文字を区別しなくなります。)

左括弧の順番に勘定して一番目、二番目等の括弧でくくられた左辺の表現を表すために、エイリアスの右辺では $1$2 等を使用できる。(ここでもまた、一重引用符でくくれば、$1$2 等をコマンドラインに書くことができる。)

正規表現は、文字列の一部分が一致すれば一致したことになる。文字列全体に一致させたいときには、正規表現の両端を ^$ でくくらなければならない。

例えばリクエストレポートの場合には、

REQOUTPUTALIAS REGEXP:^(/~([^/]*).*)$ "[$2] $1"
  /~sret1/backgammon/rules.html
  [sret1] /~sret1/backgammon/rules.html
に変換する。 または
HOSTALIAS REGEXP:^([^.]*)$ $1.mycompany.com
は、全てのピリオッドを含んでいないホスト名に .mycompany.com を付け加える。 (これが良い考えかどうかは FAQ の議論を見よ。)

正規表現は貪欲である:もし2種類の一致の仕方があるときには、左側の一致を可能な限り進めてゆく。


Stephen Turner
analogについての質問は analog-help の メーリングリスト を読んでください。

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