[an error occurred while processing this directive] [APACHE DOCUMENTATION]

mod_log_configモジュール

このモジュールはmod_log_config.cファイルに含まれ、 Apache 1.2ではデフォルトでコンパイルされます。 mod_log_configはApache1.2でmod_log_commonと置き換えられました。 バージョン1.2より以前、mod_log_configはオプションモジュールでした。 このモジュールは、ログのフォーマットを、 コモンログフォーマットか、ユーザが定義した特別なフォーマットに設定で きます。

概要

このモジュールは3つの命令を提供します。: TransferLogはログファイルを生成し、 LogFormat は特別なフォーマットを提供し、 CustomLogはログファイル名とフォーマットを定義します。 TransferLogCustomLog命令は、同時に各々の 要求のログファイルを使用できます。

互換性について

ログファイルフォーマット

LogFormatに何も指定しなければ、一般的なコモンログフォーマット (CLF)"Common Log Format"のTransferLogが生成されます。 CLFの内容の全ての行は下記のことを表現しています。 またはログファイルはカスタマイズすることが出来ます。 (また、同時に複数のログファイルで異なったフォーマットを使用すること が出来ます) カスタムフォーマットはLogFormatCustomLog によって設定します。

コモンログフォーマット

コモンログフォーマット(CLF)は各々のリクエストを1行で格納しています。 1行は幾つかのスペースによって区切られた項目によって構成されています。:
host ident authuser date request status bytes
もし項目に入れる値がないときは、ハイフン(-)で表現されます。 それら項目の意味と値は以下の通りです。:
host
FQDN形式のクライアント名。またはクライアント名が利用できない時 にはIPアドレス。
ident
もしIdentityCheckが有効になっ ていてクライアントマシンでidentdが動作している場合の、クライアントから 返される個人情報。
authuser
保護するドキュメントにパスワード要求を行った場合、 使用されたユーザID
date
リクエストの日付。書式は次の通り:
date = [day/month/year:hour:minute:second zone]
day = 2桁
month = 3文字
year = 4桁
hour = 2桁
minute = 2桁
second = 2桁
zone = (`+' | `-') 4桁
request
クライアントからダブルクォート(")によって囲まれた クライアントからのリクエスト内容。
status
クライアントに返す3桁のリターンコード
bytes
クライアントに転送したオブジェクトのバイト数。 この中にヘッダ情報は含みません。

カスタムログフォーマット

LogFormatCustomLogの書式は文字列です。 この文字列は、それぞれのリクエストをログファイルに格納します。 指定した文字をログファイルに含めることが出来、また `%' 命令は以下の 値に置き換えられます。;
%...b:          転送量(Bytes)
%...f:          ファイル名
%...h:          リモートホスト名
%...l:          リモートロングネーム (identdをクライアントがサポートしている時)
%...p:          リクエストを受けたポート
%...P:          リクエストを受けたサーバプロセスのプロセスID
%...r:          リクエストの最初の行
%...s:          ステータス。オリジナル のリクエスト --- %...>s
        を受け終ったあとの内部的なステータス。
%...t:          CLFフォーマットと同じ時間
%...T:          サーバでリクエストの処理にかかった時間(秒)
%...u:          リモートユーザ名(認証;ステータス(%s)が
        401の時は偽かもしれない)
%...U:          リクエストされたURLパス
%...v:          サーバ名(バーチャルホスト等)
%...{Foobar}i:  Foobarの内容:クライアントに送ったリクエストのヘッダー行
%...{Foobar}o:  Foobarの内容:返信のヘッダー行
%...{Foobar}n:  認証モジュールからの"Foobar"コメントの内容
`...'は何も入れない(例えば "%h %u %r %s %b")か、 状態を表すために付加するアイテム(いずれの場合でも、コンディションが 得られない時は`-'となります) 文字列 %r, %...i,%...o;にはエスケープが効きませんので注意してください。; 古い記憶ですが、以前はエスケープが便利に感じたのですが、全ての`%..i'を 正しく解読することが困難なので良くないと思います。

コモンログフォーマットは、文字列"%h %l%u %t \"%r\" %s %b" によって定義されていることに注意してください。 拡張フォーマットを望むなら、これを基本にした方が良いです。 (例えば、拡張フィールドはこの後に追加するなど)

多重ログファイルを使う

TransferLogCustomLog命令は要求されたログを 複数のファイルに出力できます。 各々の要求はこれらの命令で定義できます。

バーチャルホストで使う

<VirtualHost>セクションにTransferLog または CustomLog命令が含まれていないときは、ログファイルの定義は メインサーバでの定義と同じになります。 メインサーバでなく、ここに何かしらの定義があると、そのバーチャルホスト のだけのログをその定義の範囲で出力します。 以下の例を参照してください。

命令


CookieLog

Syntax: CookieLog filename
Context: server config, virtual host
Module: mod_cookies
Compatibility: Apache 1.2 以降で利用可能

CookieLog命令はクッキーのログファイル名を指定します。 実ファイルはファイル名にServerRootが 付加された位置に作られます。 この命令はmod_cookiesとの互換性のため だけに付加されており、価値は下がってきています。

CustomLog

Syntax: CustomLog file-pipe format
Context: server config, virtual host
Status: Base
Module: mod_log_config

最初の項目はログを行うファイル名です。 これはちょうどTransferLogと同じで、 フルパスか、対象のサーバのルートからの相対パスで指定します。 フォーマットにおいて利用可能なオプションはLogFormat 命令の説明と全く同じです。 もしフォーマットが(ほとんどすべてのケースで)スペースを含む場合は 二重引用符(")で囲む必要があります。

LogFormat

Syntax: LogFormat string
Default: LogFormat "%h %l %u %t \"%r\" %s %b"
Context: server config, virtual host
Status: Base
Module: mod_log_config

これはログファイルのフォーマットを設定します。


TransferLog

Syntax: TransferLog file-pipe
Default: TransferLog logs/transfer_log
Context: server config, virtual host
Status: Base
Module: mod_log_config

TransferLog命令はコモンログフォーマットのログファイルを追加します。 File-pipeServerRoot配下の ファイル名です。

`|' の後にコマンドを指定する
プログラムは標準入力よりエージェントログ情報を受け取る。 TransferLogをメインサーバから引き継いでも、バーチャルホストは新しい プログラムを起動することが出来ませんので注意してください。 セキュリティ:httpdを起動したユーザと同じ ユーザでそのプログラムが実行されます。 rootでhttpdが起動された場合はrootの権限になります。; プログラムが安全かどうか良く確認してください。
検索文字
このJAPACHE!ニュースグループへ
( japache.mod.log.config ) | JAPACHE!ニュースについて | JAPACHE!ホームページへ

このページの情報に関わる、ご質問、お問い合わせは、 japache@infoscience.co.jpまで。


The English original manual is here.

Index Home