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