[ 先頭 | 上へ |
前へ | 次へ |
目次 | 索引 ]
Analog 5.91beta1: エラーと警告
この章では、Analog が生成するすべてのエラーと警告を簡単な説明を添えて表示します。
まず、クラッシュ、エラー、警告、デバッグメッセージの違いについて理解してください。クラッシュ は、 Analog が出力ファイルをきちんと生成せずにいきなり終了してしまうことです。システムにはメッセージが出力されるかも知れませんが、Analog 自身が何らかのメッセージを出力することはありません。Analog が自らクラッシュすることはありません。クラッシュしてしまったら、わたしまで報告をお願いします。
エラー は、Analog が作業を終了してしまうような事象のことです。エラーが発生すると、Analog は analog: Fatal error: から始まるメッセージを出力し、終了する前に問題の種類を表示します。
警告 は、Analog にとって致命的ではない問題のことです。この場合、処理自体は続行されます。警告には、ファイルが見つからないという重大なものから、単なる情報レベルのものまで、たようなメッセージがあります。Analog は analog: Warning から始まるメッセージを出力します。WARNINGS コマンドを使うことで、警告メッセージの出力を抑止できます。
デバッグメッセージ は、プログラムの動作状況に関する情報になります。
これはコード文字1文字とコロン(「:」)から始まります。デバッグを有効にしない限り、デバッグメッセージが出力されることはありません。
ERRFILE コマンドを使うことで、これらのメッセージを画面ではなくファイルに対して出力させることができます。
ERRLINELENGTH コマンドを使うことで、Analog に対してメッセージを表示する画面の行数を設定することができます。
以下、発生しうるすべての エラー と 警告 の詳細について説明します。
- Ran out of memory: cannot continue
- Analog はメモリを使い切ってしまいました。可能であれば、OSレベルでプロセスが利用可能なメモリ量を増やしてみるか、LOWMEM コマンドを使ってみてください。
- Cannot ignore mandatory configuration file
- ドキュメントの
強制設定ファイルの章を参照してください。
- Can't find language file
Language file too short
Language file too long
Language file contains excessively long lines
- Analog は適切な形式の言語ファイルがないと動作しません。ドキュメントの言語ファイルの項を参照してください。
- Attempted to read more than 50 configuration files
- この事象が発生する原因の最たるものは、
CONFIGFILE コマンドを使って、例えばある設定ファイルが自身を再度読み込んでしまうというようなループを作成してしまったという場合です。
- Incorrect default given in anlghead.h
Default given in anlghead.h too short
- 自分でコンパイルを行なった際に、anlghead.h ファイルに不正な設定を行なうと、Analog はそれを修正するよう求めます。
- Failed to open output file for writing
- Analog は指定された出力ファイルを作成できないか、書き込むことができません。
- Cache output file already exists: won't overwrite
- Analog は古いキャッシュファイルを上書きすることができません。まずは古いファイルの移動や削除を行なう必要があります。
- OUTFILE and CACHEOUTFILE are the same
- OUTFILE and CACHEOUTFILE both set to stdout
- 一方の出力が他方を上書きしてしまうため、これは期待していた動作ではないでしょう。
- OUTPUT NONE and CACHEOUTFILE none selected
- 出力を行なわない設定になっています。
- OUTPUT LATEX only available with US-ASCII,
ISO-8859-1 and ISO-8859-2 character sets
- 標準の LaTeX の配布パッケージには、欧米の言語しか含まれていないため、LaTeX 出力形式も欧米の言語でしか機能しません。
警告は致命的なメッセージではないということを忘れないでください。in fact some are rarely even serious.
WARNINGS コマンドを使って、警告の出力を抑止することもできます。警告は幾つかの種類からなり、警告メッセージに含まれる1文字で、それを判断できます。分類は以下のとおりです。
- C
- 不正な設定が行なわれた
- D
- 疑わしい設定が行なわれた
- E
- ERRFILE コマンドが記述された
- F
- ファイルが存在しないか壊れている
- G
- corrupt lines in support files
- L
- ログファイルに明らかな問題がある。
- M
- ログファイルに多分問題がある。
- R
- 空のレポートの出力を止める。
このカテゴリは不正な設定を示します。Analog はその設定を無視するか、できる限り設定を反映しようとします。このカテゴリの警告は、すべて表示するにはあまりに膨大です。このエラーが発生した場合は、該当する 設定コマンドのドキュメントを参照するようにしてください。以前のバージョンの Analog で動作していたコマンドがエラーとなって場合は、
Updating from older versionsの章も参照してください。
このカテゴリは、意図したとおりに動作しておらず、疑わしい設定を示します。
この場合、Analog が指示された設定を変更することはありません。
- LOGFORMAT with no subsequent logfile
- LOGFORMAT コマンドが記述されていますが、設定が適用されるべきログファイルが存在しません。ほとんどの場合、LOGFILE コマンドの後で、LOGFORMAT コマンドを記述しているために、発生しています。
LOGFILE コマンドの前に LOGFORMAT コマンドを記述するか、代わりに DEFAULTLOGFORMAT コマンドを使ってください。詳細については、Specifying a log format の章を参照してください。
- Offset not a multiple of 30
Offset more than 25 hours
- time offsets は時間帯の時差を修正するためのものです。この時差は、通常 30 分の倍数で、-25 〜 +25 時間です。おそらくオフセットの時間と分の指定を間違えるようなことをしたのではないでしょうか。
- FROM time is later than the present
- 通常、この場合は何も解析されません。Analog はコンピュータやサーバの時刻がずれていても、訂正しようとはしません。
TIMEOFFSET や
LOGTIMEOFFSET を使って、時刻を修正してください。
- SORTBY doesn't match FLOOR
SORTBY doesn't match SUBSORTBY
(or FLOOR/SUBFLOOR)
SORTBY (or FLOOR or GRAPH) isn't
included in COLS
- 同じレポート中では、ソートの方式と閾値とが関連したものであり、これらに使われた項目がCOLS に含まれるのが望ましいでしょう。
(時間レポート以外のレポートの章を参照してください。)
- Column N with SORTBY ALPHABETICAL/RANDOM
- 項目が回数順になっていない場合に順位をつけるのは、おそらく設定を誤っています。
- Time reports have not all got same value of BACK
- 通常、すべての 時間レポート が同じ時系列順になっているのが有用です。
- Report contains no COLS (レポートにCOLS が指定されていません
-
- LOWMEM 3 prevents that item being cached
- キャッシュファイルを作成していますが、LOWMEM コマンドが記述されているため、ある項目が記録されていらず、キャッシュファイルにも保存されません。
このカテゴリのメッセージは1つだけです。
- Redirecting future diagnostic messages (これ以降の diagnostic メッセージの出力先が変更されます)
- You've used an ERRFILE コマンドを使って、エラー、警告、デバッグ、PROGRESSFREQ の診断結果の出力先を変更しています。これは、出力先を変更したことを忘れて、メッセージの出力先がわからなくなってしまうことを防ぐための警告です。
このカテゴリは、適切にオープンして読み込むことができなかったファイルに関して使われます。これは重大な問題ではありますが、ほとんどのメッセージについては表示されるとおりですので、以下は特筆すべき情報があるメッセージについてのみ説明します。
- Can't auto-detect format of logfile (ログファイルのフォーマットを自動的に識別できません)
- LOGFORMAT コマンドの値は、自動的に検出されますが、ログファイルの先頭行が標準的なログフォーマットのいずれにも該当していません。このエラーがよく出力されるのは、独自の LOGFORMAT を記述した後で LOGFILE コマンドを記述してしまったため、ログファイルに対して指定したフォーマットが適用されていない場合です。
- Logfile with ambiguous dates (ログファイル中の日付が曖昧です)
- IIS や WebSite などの Web サーバでは、ログファイル中の日付を地域の形式で記録します。そのため、例えば 2/1/99 といった日付について、Analog はこれが 1 月 2 日か 2 月 1 日かを判断できません。
この問題や、対応策についての詳細は、Choosing a logfile の章で説明しています。
- Logfile seems to be in Microsoft format (ログファイルは Microsoft フォーマットのようです)
- このメッセージがよく出力されるのは、IIS のログファイルが時刻を地域の形式で記録しているが、これを Analog が判別できない場合です。例えば 25/12/98 を 25.12.98 と記録しているような場合が該当します。こちらについても、対策については Choosing a logfile の章を参照してください。
- Ignoring corrupt format line in logfile (ログファイル中の不正な形式の行を無視します)
- W3 拡張形式ログ、Netscape ログ、WebSTART ログのフォーマット行が何らかの意味で不正になっています。Analog は何が悪いのかについてを常に出力します。よくある原因は、日付がログファイルの先頭行にしかなく、各行に記録されておらず、Analog が解析できないという場合でしょう。この理由や、対策については Choosing a logfile の章に記述されています。
- Failed to open domains file (ドメインファイルのオープンに失敗しました)
- この場合、すべてのドメインが "unknown domains" になります。
- Failed to open DNS input file (DNS の入力ファイルのオープンに失敗しました)
- 初めて DNS 検索を行なう時点では、DNS のキャッシュファイルが作成されていないため、この警告が出力されます。DNS WRITE を指定している場合、このメッセージは Analog の次回実行時には出力されない筈です。
- DNS lock file already exists (DNS ロックファイルがすでに存在します)
- 複数の Analog が同時に DNS ファイルに書き込みを行なわないよう、空の「ロックファイル」が存在している場合、Analog は DNS WRITE を行なわず、DNS LOOKUP を行なうようになっています。
ただし、Analog がクラッシュした場合は、ロックファイルを削除しない場合があります。そのため、他の Analog が全く実行されていないにも関わらず、「すでに存在します」というメッセージが出力される場合は、ロックファイルを手作業で削除する必要があるかも知れません。
このカテゴリは、DNS ファイル、ドメインファイル、レポート記述ファイルに不正な行があった際に使われます。Analog はファイルの不正な部分以外は読み込みます。個々のメッセージの説明については、表示されるとおりですので省略します。
Analog がログファイルの読み込みを終えると、続いてログファイルに不正な内容がないかの確認が行なわれます。
- Large number of corrupt lines (非常に多数の不正な行があります)
- これは、ログファイルか LOGFORMAT の指定に問題があることを示します。
これが発生しうる原因については、ログファイルの選択 の章に記載があります。
DEBUG ON コマンドを記述すると、Analog は問題が発生している行を表示します。
- Logfiles overlap: possible double counting (ログファイルが重複しています。おそらく2重に読み込みが行なわれています)
- これは、複数のログファイルで記録されている項目の時間が重複していることを示します。これは、ログファイルに記録されている時刻の期間しか考慮しておらず、個々の項目単位での確認は行なっていないため、必ずしも問題であるとは限りません。
同じログファイルを複数回読み込んだ場合や、キャッシュファイルを 不適切に 使った場合などは、問題となります。
Web サーバがログファイルを複数に分割して生成する場合には、LOGFORMAT の設定で、いずれかのログファイルについて重複する項目を無視するよう Analog に指示する必要があります。
ログファイルが完全に別個のものである場合、この警告は問題ではありません。例えば、複数の仮想ホストのログをまとめて解析しているような場合が該当します。この場合は、出力された結果も正しいものです。
このカテゴリは、予期しない結果を引き起こすかも知れないログファイルの内容についての警告です。
- Logfile contains lines with no [whatevers], which are being
filtered
- これは通常無害です。例を挙げて説明するのがわかりやすいでしょう。
あるファイルを解析対象から 除外 する際に、ブラウザログの解析を行なっていたとしましょう。ブラウザログには、使われているブラウザについての情報は含まれていますが、どのファイルが読み込まれたかについての情報はありません。
この場合、除外されたファイルを判別する方法がないため、こうしたファイルを読み込んでいた項目に対するブラウザの情報を除外することができず、結局ブラウザに関する情報はすべて包含されてしまいます。
- Logfile contains lines with no file names (or bytes): page (or byte)
counts may be low (ログファイルにはファイル名(もしくはバイト数)が存在しない行が含まれています。ページ(もしくはバイト)数が実際よりも少なく計算される可能性があります。
- ログファイルの行にファイル名が含まれていなかった場合、Analog は、そのリクエストはページに対するものではないと仮定します。同様に、転送バイト量が含まれていなかった場合は、転送バイト量を 0 と仮定します。
So the number of
page requests or bytes credited to the other items on that line will
then be too low.
- Old-style cache file doesn't contain data on first-request times of
items; so these may be overestimated (古い形式のキャッシュファイルには項目に対して最初にリクエストがあった時刻は記録されていませんので、自動的に算出されます)
-
現在のキャッシュファイルには、各項目に対して最初にリクエストがあった時刻が記録されています。しかし、古いバージョンの Analog で生成されたキャッシュファイルには、時刻の情報が含まれていません。この場合、最後のリクエスト時刻が代わりに使われます。
- Cache file doesn't contain last-seven-day statistics (キャッシュファイルには最近7日間の状況が含まれません)
- キャッシュファイルに最近7日間のリクエスト数を記録することはできません。
これは、キャッシュファイルが読み込まれた時点では、その情報は無意味なものになってしまっているためです。
この警告は、Analog が空のレポートの出力を抑止する際に使われます。この理由は、ログファイル中に該当する項目が含まれていないか、LOWMEM コマンドにより、それらの項目の記録が行なわれていないためだと考えられます。これは、Analog は項目が1つしかない円グラフの出力も抑止する際にも使われます。
これは Analog によって生成される警告ではありませんが、Analog が、展開中のログファイルをすべて読み終わらない内に不要だと判断して読むのを止めてしまうために発生することがあります。この警告は無害です。
Analog ホームページ
Stephen Turner
23 August 2003
Analog についての質問はanalog-help メーリングリスト をお使いください。 (訳注: 日本では analog-jp メーリングリスト をご利用ください)
[ 先頭 | 上へ |
前へ | 次へ |
目次 | 索引 ]