mod_log_config.xml.ja revision a1d62218cdb0efd0f02da1b54fd3eda91a681d98
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
a1d62218cdb0efd0f02da1b54fd3eda91a681d98nd<!-- English Revision: 579425:1674261 (outdated) -->
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding Licensed to the Apache Software Foundation (ASF) under one or more
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding contributor license agreements. See the NOTICE file distributed with
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding this work for additional information regarding copyright ownership.
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding The ASF licenses this file to You under the Apache License, Version 2.0
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding (the "License"); you may not use this file except in compliance with
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding the License. You may obtain a copy of the License at
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd Unless required by applicable law or agreed to in writing, software
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd distributed under the License is distributed on an "AS IS" BASIS,
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd See the License for the specific language governing permissions and
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd limitations under the License.
208651a016b098f4fa1f6279559f104d70f1632dtakashi このモジュールはクライアントのリクエストを柔軟にログ収集する機能を
208651a016b098f4fa1f6279559f104d70f1632dtakashi 提供します。ログはカスタマイズ可能な書式で書かれ、ファイルに直接
208651a016b098f4fa1f6279559f104d70f1632dtakashi 書いたり、外部プログラムに渡したりすることができます。個々のリクエストを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 特徴に応じてログに書いたり書かなかったりできるように、条件による
208651a016b098f4fa1f6279559f104d70f1632dtakashi ログ収集も提供されています。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>このモジュールは三つのディレクティブ提供します:
26baac050d2e2744fb80be098236b592e959a1b2yoshiki >TransferLog</directive>,
208651a016b098f4fa1f6279559f104d70f1632dtakashi 新しい書式を 定義する <directive module="mod_log_config">LogFormat</directive>,
208651a016b098f4fa1f6279559f104d70f1632dtakashi ログファイルと 書式を一度に定義する <directive module="mod_log_config"
208651a016b098f4fa1f6279559f104d70f1632dtakashi >CustomLog</directive> です。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 各リクエストが複数回ログ収集されるようにするために
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブは複数回使用することができます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi<seealso><a href="/logs.html">Apache ログファイル</a></seealso>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><directive module="mod_log_config">LogFormat</directive> ディレクティブと
26baac050d2e2744fb80be098236b592e959a1b2yoshiki <directive module="mod_log_config">CustomLog</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブの書式を指定する引数は文字列です。この文字列を使ってそれぞれの
208651a016b098f4fa1f6279559f104d70f1632dtakashi リクエストがログファイルにログ収集されます。その文字列には
208651a016b098f4fa1f6279559f104d70f1632dtakashi ログファイルにそのまま
208651a016b098f4fa1f6279559f104d70f1632dtakashi 書かれる文字列や、それぞれ改行とタブを表す C 言語
208651a016b098f4fa1f6279559f104d70f1632dtakashi 形式の制御文字 "\n" と "\t"
208651a016b098f4fa1f6279559f104d70f1632dtakashi とを含めることができます。そのまま出力させたい引用符とバックスラッシュは
208651a016b098f4fa1f6279559f104d70f1632dtakashi バックスラッシュでエスケープする必要があります。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブを書式の文字列に書くことで
208651a016b098f4fa1f6279559f104d70f1632dtakashi ログ収集されます。"%"
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブはログファイル中では以下のような
208651a016b098f4fa1f6279559f104d70f1632dtakashi 値で置換されます:</p>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki <columnspec><column width=".2"/><column width=".8"/></columnspec>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>レスポンスのバイト数。HTTP ヘッダは除く。CLF 書式。
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>サーバに送られたリクエスト中のクッキー <var>Foobar</var> の値</td></tr>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>(identd からもし提供されていれば) リモートログ名。
26baac050d2e2744fb80be098236b592e959a1b2yoshiki <directive module="mod_ident">IdentityCheck</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>応答の <code><var>Foobar</var>:</code> ヘッダの内容</td></tr>
d3d237c7640d838c93d62a6a58aca790e391eb6btakashi <td>サーバがリクエストを処理しているポートの公式
d3d237c7640d838c93d62a6a58aca790e391eb6btakashi サーバの実際のポート番号か、クライアント側の実際のポート番号かです。
d3d237c7640d838c93d62a6a58aca790e391eb6btakashi format に使える文字列は <code>canonical</code>, <code>local</code>,
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>リクエストを扱ったワーカーのプロセス ID かスレッド ID。
208651a016b098f4fa1f6279559f104d70f1632dtakashi <var>format</var> として有効な値は <code>pid</code>, <code>tid</code>,
208651a016b098f4fa1f6279559f104d70f1632dtakashi APR 1.2.0 以降が必要です。
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>ステータス。内部でリダイレクトされたリクエストは、元々の
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>リクエストを受付けた時刻。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 401 のときは意味がないものである可能性がある)
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>応答が完了したときの接続ステータス:
26baac050d2e2744fb80be098236b592e959a1b2yoshiki <columnspec><column width=".2"/><column width=".6"/></columnspec>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>(このディレクティブは Apache
208651a016b098f4fa1f6279559f104d70f1632dtakashi いましたが、これは歴史的に ssl が使用している
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>リクエストとヘッダを含む、受け取ったバイト数。
208651a016b098f4fa1f6279559f104d70f1632dtakashi これを使用するためには <module>mod_logio</module> が必要</td></tr>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <td>ヘッダを含む、送信したバイト数。0 にはならない。
208651a016b098f4fa1f6279559f104d70f1632dtakashi これを使用するためには <module>mod_logio</module> が必要</td></tr>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>特定の要素は "%" の直後に HTTP ステータスコードをカンマ区切りで
208651a016b098f4fa1f6279559f104d70f1632dtakashi 指定することで、表示を制限することができます。例えば
208651a016b098f4fa1f6279559f104d70f1632dtakashi で否定を指定することができます :
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>修飾子 "<" と ">" は内部リダイレクトされたリクエストのログに
208651a016b098f4fa1f6279559f104d70f1632dtakashi 元のリクエストか最終的なリクエストのどちらを使用するかを
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>%s, %U, %T, %D, %r</code> は元のリクエストを、他は最終的なリクエストを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使用します。例えば、リクエストの最終ステータスを記録するには
208651a016b098f4fa1f6279559f104d70f1632dtakashi リクエストで元のリクエストで認証されたユーザを記録するためには
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>セキュリティ上の理由により 2.0.46 より、
208651a016b098f4fa1f6279559f104d70f1632dtakashi <code>%r</code>, <code>%i</code>, <code>%o</code> に入っている、
208651a016b098f4fa1f6279559f104d70f1632dtakashi そのままのバイトの値の 16 進での値です。この規則の例外には、
208651a016b098f4fa1f6279559f104d70f1632dtakashi バックスラッシュを使ってエスケープされる <code>"</code> と <code>\</code> と、
208651a016b098f4fa1f6279559f104d70f1632dtakashi C 形式の表記法が使われる空白文字 (<code>\n</code>, <code>\t</code> など)
208651a016b098f4fa1f6279559f104d70f1632dtakashi があります。2.0.46 以前のバージョンではエスケープ処理は行われませんので、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 生ログファイルを扱う際に注意が必要です。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>httpd 2.0 では 1.3 とは異なり、<code>%b</code> と <code>%B</code>
208651a016b098f4fa1f6279559f104d70f1632dtakashi フォーマット文字列はクライアントに送信されたバイト数そのものではなく、
208651a016b098f4fa1f6279559f104d70f1632dtakashi HTTP レスポンスのバイト数です (これらは異なるもので、たとえば、
208651a016b098f4fa1f6279559f104d70f1632dtakashi コネクションが途中で破棄された場合や、SSL 使用時に一致しません) 。
208651a016b098f4fa1f6279559f104d70f1632dtakashi フォーマット文字列で、ネットワーク経由で実際に転送されたバイト数を
208651a016b098f4fa1f6279559f104d70f1632dtakashi 記録できます。</p>
41ff3234a2847314c03f69359a0c7149c9ca6c87kawai <dd><code>"%v %h %l %u %t \"%r\" %>s %b"</code></dd>
41ff3234a2847314c03f69359a0c7149c9ca6c87kawai <dd><code>"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>ログファイルが保存されているディレクトリがサーバを起動した以外のユーザで
208651a016b098f4fa1f6279559f104d70f1632dtakashi 書き込み可能なときにセキュリティの問題が発生する理由の詳細は<a
208651a016b098f4fa1f6279559f104d70f1632dtakashi href="/misc/security_tips.html#serverroot">セキュリティのこつ</a>
208651a016b098f4fa1f6279559f104d70f1632dtakashi を参照してください。</p>
dacd15aa732ec7664180b323e29e190f638b45d9kawai<directivesynopsis>
208651a016b098f4fa1f6279559f104d70f1632dtakashi<description>ディスクに書き出す前にメモリにログエントリをバッファする</description>
dacd15aa732ec7664180b323e29e190f638b45d9kawai<contextlist><context>server config</context></contextlist>
208651a016b098f4fa1f6279559f104d70f1632dtakashi 複数のログを書き出す際に、それぞれのリクエスト処理後毎に
208651a016b098f4fa1f6279559f104d70f1632dtakashi 書き出すのではなく、いったんメモリに蓄えてから、
208651a016b098f4fa1f6279559f104d70f1632dtakashi まとめてディスクに書き出すようになります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi この結果ディスクアクセスがより効率的になり、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 高いパフォーマンスの得られるシステムもあるでしょう。
208651a016b098f4fa1f6279559f104d70f1632dtakashi このディレクティブはサーバ全体で一度だけ設定できます;
208651a016b098f4fa1f6279559f104d70f1632dtakashi バーチャルホストごとに設定することはできません。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <note>このディレクティブは実験的なものですので、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使用する際は注意してください。</note>
dacd15aa732ec7664180b323e29e190f638b45d9kawai</directivesynopsis>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<directivesynopsis>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<contextlist><context>server config</context><context>virtual host</context>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki</contextlist>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><directive>CustomLog</directive> ディレクティブはサーバへのリクエストを
208651a016b098f4fa1f6279559f104d70f1632dtakashi ログ収集するために使われます。ログの書式が指定され、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 環境変数を使ってロギングが条件に応じて行なわれるようにすることもできます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>ログが書かれる場所を指定する最初の引数は以下の二つの形式の値を
208651a016b098f4fa1f6279559f104d70f1632dtakashi とることができます:</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi からの相対パスで表されるファイル名。</dd>
208651a016b098f4fa1f6279559f104d70f1632dtakashi 情報を受けとるプログラムへのパスが続いたもの。
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>もしプログラムが使用された場合、
208651a016b098f4fa1f6279559f104d70f1632dtakashi root によって起動された場合は root になります。プログラムが
208651a016b098f4fa1f6279559f104d70f1632dtakashi 安全であるように留意してください。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>Unix でないプラットフォームでファイルのパスを入力しているときは、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使用しているプラットフォームがバックスラッシュの使用を許可していた
208651a016b098f4fa1f6279559f104d70f1632dtakashi として、通常のスラッシュだけを使うように気をつけてください。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 一般的に、設定ファイル中では常に普通のスラッシュのみを使うようにする
208651a016b098f4fa1f6279559f104d70f1632dtakashi 方が良いです。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>二つめの引数はログファイルに何が書かれるかを指定します。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 前にある <directive
208651a016b098f4fa1f6279559f104d70f1632dtakashi module="mod_log_config">LogFormat</directive> ディレクティブにより
208651a016b098f4fa1f6279559f104d70f1632dtakashi 定義された <var>nickname</var> か、<a href="#formats">ログの書式</a>
208651a016b098f4fa1f6279559f104d70f1632dtakashi どちらかを指定することができます。</p>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki # CustomLog with format nickname<br />
26baac050d2e2744fb80be098236b592e959a1b2yoshiki LogFormat "%h %l %u %t \"%r\" %>s %b" common<br />
26baac050d2e2744fb80be098236b592e959a1b2yoshiki # CustomLog with explicit format string<br />
26baac050d2e2744fb80be098236b592e959a1b2yoshiki CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>三つ目の引数は省略可能で、サーバの環境にある変数があるかないかに
208651a016b098f4fa1f6279559f104d70f1632dtakashi 応じてリクエストをログ収集するかどうかを制御するために使うことができます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 設定されていた場合 ('<code>env=!<var>name</var></code>' 文が使われたときは
208651a016b098f4fa1f6279559f104d70f1632dtakashi 設定されていない場合)、リクエストがログ収集されます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi 片方を用いてリクエストごとに設定することができます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 例えば、サーバにあるすべての GIF 画像へのリクエストを別のログファイル
208651a016b098f4fa1f6279559f104d70f1632dtakashi には記録したいけれど、メインログには記録したくない、というときは
208651a016b098f4fa1f6279559f104d70f1632dtakashi 以下のものを使うことができます:</p>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki SetEnvIf Request_URI \.gif$ gif-image<br />
26baac050d2e2744fb80be098236b592e959a1b2yoshiki CustomLog gif-requests.log common env=gif-image<br />
26baac050d2e2744fb80be098236b592e959a1b2yoshiki CustomLog nongif-requests.log common env=!gif-image
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>古い RefererIgnore ディレクティブと同じ挙動をさせたい場合は、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 次のようにします:</p>
7786aacd4055e2ec21595b752f045508b65946f3kawai SetEnvIf Referer example\.com localreferer<br />
7786aacd4055e2ec21595b752f045508b65946f3kawai CustomLog referer.log referer env=!localreferer
26baac050d2e2744fb80be098236b592e959a1b2yoshiki</directivesynopsis>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<directivesynopsis>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<syntax>LogFormat <var>format</var>|<var>nickname</var>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<default>LogFormat "%h %l %u %t \"%r\" %>s %b"</default>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<contextlist><context>server config</context><context>virtual host</context>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki</contextlist>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p><directive>LogFormat</directive> ディレクティブは二つの形式のどちらかを
208651a016b098f4fa1f6279559f104d70f1632dtakashi とることができます。最初の形式では一つの引数のみが指定され、
208651a016b098f4fa1f6279559f104d70f1632dtakashi で指定されたログで使われるログの書式を設定します。この単独の引数では
208651a016b098f4fa1f6279559f104d70f1632dtakashi もしくは、下で説明されているように前に <directive>LogFormat</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi 参照することもできます。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi フォーマット文字列全体を再び書くかわりに、
208651a016b098f4fa1f6279559f104d70f1632dtakashi >LogFormat</directive> ディレクティブや
208651a016b098f4fa1f6279559f104d70f1632dtakashi Nickname を定義する <directive>LogFormat</directive> ディレクティブは
208651a016b098f4fa1f6279559f104d70f1632dtakashi ですから、これは続く <directive module="mod_log_config">TransferLog</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi ディレクティブには影響を与えません。
208651a016b098f4fa1f6279559f104d70f1632dtakashi さらに、<directive>LogFormat</directive> ディレクティブは既存の nickname を
208651a016b098f4fa1f6279559f104d70f1632dtakashi 使って別の nickname を定義することはできません。Nickname には
208651a016b098f4fa1f6279559f104d70f1632dtakashi してください。</p>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
26baac050d2e2744fb80be098236b592e959a1b2yoshiki</directivesynopsis>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<directivesynopsis>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<syntax>TransferLog <var>file</var>|<var>pipe</var></syntax>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki<contextlist><context>server config</context><context>virtual host</context>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki</contextlist>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>このディレクティブは、ログ書式を直接指定できないことと、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 条件付きロギングが無いことを除くと、<directive module="mod_log_config"
208651a016b098f4fa1f6279559f104d70f1632dtakashi >CustomLog</directive> と全く同じ引数と効果があります。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 直接ログ書式を指定する代わりに、ログの書式はそこまでで一番最後に指定された
208651a016b098f4fa1f6279559f104d70f1632dtakashi ニックネームを定義しない
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive module="mod_log_config">LogFormat</directive> ディレクティブ
208651a016b098f4fa1f6279559f104d70f1632dtakashi で定義されたものを使います。
208651a016b098f4fa1f6279559f104d70f1632dtakashi もし他の書式が全く指定されていないときは Common Log Format
208651a016b098f4fa1f6279559f104d70f1632dtakashi が使われます。</p>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""<br />
26baac050d2e2744fb80be098236b592e959a1b2yoshiki</directivesynopsis>
26baac050d2e2744fb80be098236b592e959a1b2yoshiki</modulesynopsis>