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

Analog 5.24: 出力の設定


ここまでは、Analog がログファイルを読み込む際の処理を制御するコマンドについて説明してきました。ここからは、出力を制御するコマンドについて説明していきます。
OUTPUT コマンドを使うことで、出力のスタイルを変更することが可能です。スタイルには、HTMLPLAINASCIILATEXCOMPUTERの五つがあります。

HTML は Web ページを生成します。

PLAIN はプレインテキストファイルを生成し、ASCII は基本的に PLAIN と同様ですが、可能な限り ASCII 文字のみを使う点が異なります (アクセント文字などが入りません)。 (これは、アプリケーションによってはアクセントのついた文字を認識しないものがあるためです。例えば、電子メールで送信を行なう場合、これらの文字を使うと文字化けが発生することがあります。)

LATEX は LaTeX 形式のファイルを生成します。pdflatexコマンドがインストールされていれば、このファイルを PDF 形式に変換することができます。 (If you want to use the ordinary latex command, specify PDFLATEX OFF.) この引数は、特定の欧米の言語(US-ASCII、ISO-8859-1、ISO-8859-2 の文字セット)でしか使えません。xxxxx Yes, I know it gives overfull hboxes sometimes.

COMPUTER はコンピュータで処理を行なうのに適した形式になります(表計算ソフトウェアや画像生成ソフトウェアなどに読み込ませるのに適しています)。 この形式については、後ほど別の章で説明します。

コマンドで

OUTPUT PLAIN
と記述するように、コマンドライン引数の+aによって、PLAIN形式を指定することができます。また、コマンドライン引数で-aを指定すると、HTML形式で出力が行なわれます。 -a.

また、cache fileを生成する場合に、OUTPUT NONEを記述することで、出力を抑止することもできます。


出力の際に用いる言語を変更することもできます。 これには、二つの方法があります。 一般的な方法は、LANGUAGE コマンドを用いる方法です。 例えば、以下のコマンド
LANGUAGE FRENCH
により、出力に用いる言語としてフランス語が指定されます。 現在指定可能な言語は以下のとおりです: ARMENIANBULGARIAN(Windows-1251)、 BULGARIAN-MIK(MIK-16)、CATALANTRAD-CHINESE(Big5)、 CZECH(ISO Latin 2)、CZECH-1250(Windows-1250)、 DANISHDUTCHENGLISHUS-ENGLISHFINNISHFRENCHGERMANHUNGARIANITALIANJAPANESE-EUC(EUC-JP)、JAPANESE-JIS(ISO-2022-JP)、 JAPANESE-SJIS(SJIS)、JAPANESE-UTF(UTF-8)、 KOREANLATVIANNORWEGIAN(Bokmål)、 NYNORSKPOLISHPORTUGUESEBR-PORTUGUESERUSSIAN(KOI8-R)、 RUSSIAN-1251(Windows-1251)、SERBIANSLOVENE(ISO Latin 2)、 SLOVENE-1250(Windows-1250)、SPANISHSWEDISHSWEDISH-ALT(alternative translation avoiding Anglicisms xxxxx)、 TURKISHUKRAINIAN

以下の言語は以前のバージョンの Analog では使えましたが、またバージョン 5 に対応した翻訳が行なわれていません: BOSNIANSIMP-CHINESE(GB2312)、 CROATIANGREEKICELANDICLITHUANIANROMANIANSLOVAK これらの言語も速やかに利用できるようになるとよいと思っています。利用可能になったものは、 Analog のホームページ に追加されます。

もう一つの言語を指定する方法は、LANGFILEコマンドです。 これは、Analog のホームページから新しい言語をダウンロードして使ったり、自分自身で行なった翻訳を使ったり、出力される語句やフレーズ、もしくは日付や日時の形式の一部を変更して使ったりする場合に便利です。 LANGFILE コマンドは、Analog に、新しい言語のキーワードやフレーズを記述したファイルを読み込ませます。例えば、以下のコマンド

LANGFILE guarani.lng   # もしくは
LANGFILE /usr/etc/httpd/analog/lang/guarani.lng
により、指定した言語ファイルが読み込まれます。 ファイル名にディレクトリが含まれていない場合、Analog は特定の場所にある言語ファイルを探して読み込もうとします。

言語によっては、ドメインファイル やレポート記述ファイルを指定することもできます。これらのファイルは、通常LANGUAGE コマンドによって自動的に選択されます。しかし、DOMAINSFILEDESCFILE コマンドを使って、Analog に別のファイルを使わせることもできます。またフォームインタフェース や設定ファイルの翻訳版がある言語もあります。

ここに挙げた以外の言語の翻訳を行なっていただけるのであれば、非常に感謝します。他に同じ言語を翻訳している人がいないかどうかを確認する意味で、まずはわたしに連絡をしてください。 language ディレクトリにあるREADME.txtファイルと英語版の言語ファイルに、新しい言語の翻訳を行なう際の簡単な手引きが含まれています。

同様に、すべての言語をわたし一人でチェックすることはできませんので, 英語以外の言語の出力に誤りを見つけたときは、わたしに知らせて下さい


以下のようなコマンドにより、出力先のファイルを変更することができます。
OUTFILE stats.htm
コマンドライン引数で同様のことを行なう場合は、+Ostats.htmになります。 ファイル名として-stdout を記述した場合、出力は標準出力に対して行なわれます。標準出力は通常画面になっていますが、UNIX のユーザは、これを別のファイルやパイプなどにリダイレクトして使うことでしょう。なお、ここでも以下のような絶対パス名を使うことができます。
OUTFILE /usr/bin/httpd/htdocs/stats.html  # Unix
OUTFILE "Hard Disk:Server Apps:WebSTAR:Analog:Report.html" # Mac
OUTFILE コマンドで指定された出力ファイル名にディレクトリ名が含まれていない場合、 Analog は、特定の場所 (この場所はコンパイル時のオプションです) に出力ファイルを作成しようとします。 例えば、 Windows 版の場合、これは Analog の実行ファイルと同じフォルダになります。ただし、コマンドライン引数で+Oを指定した場合、ファイルはカレントディレクトリに作成されます。

LOGFILEと全く同じ方法で、OUTFILE中に日付を含めることも可能です。 例えば以下の記述

OUTFILE stats%y%M%D.html
により、stats990501.htmlのようなファイル名が生成されます。 LOGFILEコマンドの場合、この日付は、 TO が指定されていた場合はその日付を示し、それ以外の場合はプログラムが起動した日付を示します。
次に、個々のレポートを表示させたりさせなかったりする方法について説明しましょう。 Analog は、Web サーバが必要とされる情報をログファイルに記録している場合、最高 44 個の異なるレポートを生成することができます。それぞれのレポートは、以下のような短い名前と、コード文字または数字を持っています。 (コード文字は大文字と小文字を区別しますので、例えばZzとは全く異なります。)
x  GENERAL         全体の概要
1  YEARLY          年別レポート
Q  QUARTERLY       4半期別レポート
m  MONTHLY         月別レポート
W  WEEKLY          週別レポート
D  DAILYREP        日別レポート
d  DAILYSUM        曜日別集計
H  HOURLYREP       時間別レポート
h  HOURLYSUM       時間別集計
w  WEEKHOUR        曜日別時間集計
4  QUARTERREP      15分間隔レポート
6  QUARTERSUM      15分間隔集計
5  FIVEREP         5分間隔レポート
7  FIVESUM         5分間隔集計
S  HOST            ホストレポート
l  REDIRHOST       ホストリダイレクションレポート
L  FAILHOST        ホスト不成功レポート
Z  ORGANISATION    組織レポート
o  DOMAIN          ドメインレポート
r  REQUEST         リクエストレポート
i  DIRECTORY       ディレクトリレポート
t  FILETYPE        ファイル種類別レポート
z  SIZE            ファイルサイズレポート
P  PROCTIME        処理時間レポート
E  REDIR           リダイレクトレポート
I  FAILURE         不成功レポート
f  REFERRER        リンク元レポート
s  REFSITE         リンク元サイトレポート
N  SEARCHQUERY     検索語句レポート
n  SEARCHWORD      検索語レポート
Y  INTSEARCHQUERY  内部検索語句レポート
y  INTSEARCHWORD   内部検索単語レポート
k  REDIRREF        リダイレクトされたリンク元URLレポート
K  FAILREF         不成功リンク元レポート
B  FULLBROWSER     ブラウザーレポート
b  BROWSER         ブラウザーの概要
p  OSREP           OSレポート
v  VHOST           仮想ホストレポート
R  REDIRVHOST      仮想ホストリダイレクションレポート
M  FAILVHOST       仮想ホスト不成功レポート
u  USER            ユーザレポート
j  REDIRUSER       ユーザリダイレクションレポート
J  FAILUSER        不成功ユーザレポート
c  STATUS          状態コードレポート
各レポートの詳細な意味やそれらを制御するコマンドの一覧などについては、Analog のレポートの章を参照してください。

以下のようなコマンドを使うことで、各レポートを表示させたり、表示を抑止させたりすることもできます。

FIVEREP OFF
REFSITE ON
コマンドライン引数で同様のことを行なう場合は、-5+sのように指定します。 また、全体の概要レポートを除くすべてのレポートについては、ALL ONALL OFF コマンドや、コマンドライン引数の +A-A によって、表示させたり、表示を抑止したりすることもできます。
各レポートの説明の表示を抑止する場合は、以下のコマンドを使います。
DESCRIPTIONS OFF
なお、DESCRIPTIONSON であっても、Analog が指定された言語の report description ファイルを読み込むことができるか、以下のようにDESCFILE コマンドを使って読み込むファイルを指定しない限り、実際の表示は行なわれません。
DESCFILE descriptions.txt
description ファイルのファイル名にディレクトリ名が含まれていない場合、 Analog は、特定の場所にある言語ファイルを読み込もうとします。

出力中にある「Go To」行については、以下のコマンドで表示を抑止することができます。

GOTOS OFF
GOTOS ON は表示を行なうようにし、GOTOS FEW は「Go To」行をページ先頭と最後のみに表示します。GOTOS OFFはコマンドライン引数の -Xで指定することもでき、同じくGOTOS ON+Xで指定できます。

ページ先頭の "Program started at" 行とページ最後の "Running Time" 行の表示を抑止するには、以下のコマンドを使います。

RUNTIME OFF
また表示するようにするには、RUNTIME ONを記述します。

全体の概要レポート中では括弧の中に最近1週間の状態が表示されます。最近1週間とは、TO が指定されていれば、それ以前の1週間、もし指定されていない場合はプログラムが起動した時刻以前の1週間を示します。最近1週間の値は、通常その期間中に特定のリクエストが発生した場合に表示されます。ただし以下のコマンド

LASTSEVEN OFF
により、表示を抑止することもできます。もちろん、LASTSEVEN ONにより、表示させることもできます。

REPORTORDER コマンドにより、レポートの順序を変更することも可能です。この際すべてのレポートのコード文字を表示させたい順序に並べかえる必要があります。アルファベットと数字以外の文字は無視されるため、そうした文字をセパレータとして使うことができます。以下に例を示します。

REPORTORDER x-1QmdDhHw4567W-cPz-ritEIYy-SlLZo-sNnfKk-ujJ-vMR-bBp

GENSUMLINES コマンドを使うことで、全体の概要レポート中の各行を個別に表示したり表示を抑止したりすることができます。 デフォルトは、
GENSUMLINES ALL
で、これは表示可能な行すべてを表示するという意味になります。以下のようにコマンドを記述することで、特定の行を日表示にすることも可能です。
GENSUMLINES -KL
(KL の行が非表示になります) 再度表示させるためには、以下のようなコマンドを記述します。
GENSUMLINES +K
以下のようにコマンドを記述することで、表示させる行すべてを明示的に指定することもできます。
GENSUMLINES CDFGHM
後は、どの行がどのコード文字に対応しているかを知れば良いだけです。以下の表を参照してください。
 
リクエスト成功件数 (常に表示される)
B
リクエスト成功件数の日別平均
C
状態コード不在ログ行数
D
ページリクエスト成功件数
E
ページリクエスト成功件数の日別平均
F
リクエスト不成功件数
G
リダイレクトされたリクエスト件数
H
状態コード付きリクエスト件数
I
異なるリクエストファイル数
J
異なるサービスホスト数
K
異常ログ行数
L
不必要ログ項目数
M
データ転送量
N
データ転送量の日別平均

IMAGEDIR というコマンドにより、出力ページの見栄えを良くするのに使われる種々のイメージファイルの位置を指定します。 このコマンドでは、ディスク上の実際の位置ではなく、URL の形で位置を指定する必要があります。また最後にはスラッシュを含めるようにしてください。例えば、以下のような形で指定を行ないます。
IMAGEDIR img/   # 相対 URL 指定: 出力ファイルの位置が基準
IMAGEDIR /img/  # サーバ上のルートディレクトリからの絶対パス指定
IMAGEDIR http://www.myother.server.com/img/  # 別のサーバ上のファイルを指定
IMAGEDIRについて混乱する人もいるようですが、これは出力ファイル中の「img」タグ内に反映されます。実際に出力ファイルの HTML ソースを確認すれば、この設定の意味が理解できるでしょう。

以下のコマンドを記述することで、棒グラフの画像として GIF ファイルの代わりに PNG ファイルを使うことができます。

PNGIMAGES ON
PNG ファイルに対するブラウザのサポートがいまだに問題を抱えていて、多くのブラウザでは出力が正しく表示されなくなってしまうため、デフォルトでこの設定は無効にしています。デフォルトについては将来変更されるかも知れません。 PNGIMAGES の設定は pie chart に対しては無効です。このコマンドの設定に関わらず、pie chart は常に PNG を利用します。ただし、JPEGCHARTS コマンドにより pie chart の出力形式を PNG 以外にすることは可能になっています。
出力ファイルの冒頭に関連するコマンドとしては、以下の3つがあります。 一つ目の LOGO コマンドにより、Analog のロゴを別のイメージファイル(例えば組織のロゴなど)に変更することができます。以下のような記述が可能です。
LOGO picture.gif  # for this file 
LOGO /images/picture2.gif  # a different file
LOGO none         # ロゴを使わない
ロゴファイルの指定が絶対パスか://を含む表記でない場合、ファイルは IMAGEDIR ディレクトリ内にあるとみなされます。

タイトルの最後に現われるサイト名とそのリンクの設定を行なうコマンドとして、HOSTNAMEHOSTURL というコマンドが用意されています。例えば以下のように記述することで

HOSTNAME "Stephen Turner"
HOSTURL  http://homepage.ntlworld.com/adelie/stephen/
タイトル行は、「Web Server Statistics for Stephen Turner」となります(訳注: 日本語の言語ファイルを使っている場合は当然日本語で表示されます)。 これについても、HOSTURLnoneを記述することで、リンクを作成しないことができます。通常 Analog は HOSTNAME に記述した文字を必要に応じて HTML に変換します。 そのため HTML のアクセント文字のような特殊な文字を記述する場合は、以下のように、それらの文字をバックスラッシュでエスケープする必要があります:
HOSTNAME "M\üller & S\öhne"

HEADERFILEFOOTERFILEというコマンドも用意されています。これらは出力の先頭や最後に挿入するファイルを指定するコマンドになります。また
HEADERFILE none
と記述することで、それ以前に指定したファイルを無効にすることも可能です。 これについても、HEADERFILEFOOTERFILE に記述したファイル名にディレクトリ名が含まれていなかった場合、Analog はファイルがプログラムのコンパイル時に指定されたディレクトリ内にあるものとして扱います。
STYLESHEET コマンドは、出力に適用するスタイルシートを指定します。スタイルシートにより、色などを指定することが可能になります(スタイルシートの文法については、 http://www.w3.org/Style/css/を参照のこと)。例えば、以下のように記述します。
STYLESHEET /housestyle.css
STYLESHEET none   # 上記を無効にします。
ヒント: スタイルシートを指定する上でのありがちな落し穴は、 body に font-family を宣言したが、<pre> セクションで等幅フォントに戻す宣言を行なわなかったために、カラムが揃わなくなってしまうといったものです。スタイルシートには以下のような行をいれておくことが必要です:
PRE, TT, CODE, KBD, SAMP { font-family: monospace }

SEPCHARREPSEPCHARDECPOINTといったコマンドも用意されています。 これらのコマンドには、それぞれ、桁区切り文字、レポート中の桁区切り文字、それに小数点文字を記述します。通常これらの文字は、選択した言語に基づき自動的に設定されますが、これらのコマンドにより必要に応じて変更することが可能になります。例えば、フランス人のユーザは、以下のような記述を行なうでしょう。
SEPCHAR " "
REPSEPCHAR none
DECPOINT ,
これにより、「三千と四分の一」は、通常「3 000,25」のように表示され、レポート中では「3000,25」のように表示されます。

RAWBYTESというコマンドがありますRAWBYTES ON と記述すると正確なバイト数が表示されますが、RAWBYTES OFF とすると、キロバイトやメガバイトといった単位で表示されます。


ページの幅を設定するコマンドとしてHTMLPAGEWIDTHPLAINPAGEWIDTHLATEXPLAINWIDTHといったものがあります。どのコマンドが使われるかについては、出力の形式が HTMLPLAIN (ASCIIを含む)、LATEXのいずれに設定されているかによります。出力がこの幅に収まることを保証するものではありませんが、時間のグラフ(time graph)の幅、ホストレポートをアルファベット順に並べる際、水平線を描画する際、ある種のテキストを表示する際などに、Analog はこの値を考慮します。
NOROBOTS コマンドによりrobot META タグに準拠している robot が出力ページを索引づけしたり、リンクをたどったりするのを抑止することが可能になります。通常このコマンドはONになっていますが、robot がページを探し出しても構わないという場合は、NOROBOTS OFF と記述することも可能です。なお統計ページを robots.txt ファイルに含めることで、robot をもっと根本的に排除することが可能です。ただし、このファイルはサーバ管理者が随時更新していく必要があります。
時には、サーバが別の時間帯に存在していたり、サーバがログファイルに記録する日付が別の時間帯(例えば GMT)であったりするかも知れません。 そのため、現地時刻でサーバの状態を表示できるようにするため、LOGTIMEOFFSET というコマンドにより出力中の時間を分単位で調整することが可能になっています。 なお、LOGFORMAT コマンドと同様に、このコマンドは、同じ 設定ファイル内で、このコマンドよりも後に記述されたログファイルにのみ適用されます。

このコマンドを使う際には注意が必要です。世界の様々な地域で夏時間が使われており、夏時間を適用する期間も様々です。そのため、Analog は時間帯の変換は行ないません。期間によって時刻を適切に調整する作業は、ユーザ側の責任で行なう必要があります。例えば、あなたはシカゴに住んでいるが、サーバは GMT で時刻を記録しているという場合、夏期にはマイナス5時間、冬期にはマイナス6時間の調整を行なう必要があります。この場合、ログファイルを適切な場所で分割した上で、以下のようなコマンドを記述する必要があるでしょう。

LOGTIMEOFFSET -300
LOGFILE summer*.log
LOGTIMEOFFSET -360
LOGFILE winter*.log

関連するコマンドとして、TIMEOFFSETというものがあります。これは、現地時刻に調整するために、Analog を実行しているコンピュータ(Web サーバを実行しているコンピュータではなく)の時刻をどれだけ修正するかを設定するコマンドになります。


以降の章では、特定のレポートの出力を設定するコマンドについて、時間レポートその他のレポート階層レポートの順に説明を行なっていきます。
Analog ホームページ

Stephen Turner
25 June 2002

Analog についての質問はanalog-help メーリングリスト をお使いください。 (訳注: 日本では analog-jp メーリングリスト をご利用ください)

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