github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/logs.html.ja.utf8 (about)

     1  <?xml version="1.0" encoding="UTF-8"?>
     2  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     3  <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head>
     4  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
     5  <!--
     6          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     7                This file is generated from xml source: DO NOT EDIT
     8          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     9        -->
    10  <title>ログファイル - Apache HTTP サーバ バージョン 2.2</title>
    11  <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
    12  <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
    13  <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
    14  <script src="./style/scripts/prettify.min.js" type="text/javascript">
    15  </script>
    16  
    17  <link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/logs.html" rel="canonical" /></head>
    18  <body id="manual-page"><div id="page-header">
    19  <p class="menu"><a href="./mod/">モジュール</a> | <a href="./mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p>
    20  <p class="apache">Apache HTTP サーバ バージョン 2.2</p>
    21  <img alt="" src="./images/feather.gif" /></div>
    22  <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
    23  <div id="path">
    24  <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="./">バージョン 2.2</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
    25              <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p>
    26          <p>You may follow <a href="http://httpd.apache.org/docs/current/logs.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>ログファイル</h1>
    27  <div class="toplang">
    28  <p><span>翻訳済み言語: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
    29  <a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
    30  <a href="./ja/logs.html" title="Japanese">&nbsp;ja&nbsp;</a> |
    31  <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
    32  <a href="./tr/logs.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
    33  </div>
    34  <div class="outofdate">この日本語訳はすでに古くなっている
    35              可能性があります。
    36              最近更新された内容を見るには英語版をご覧下さい。
    37          </div>
    38  
    39      <p>ウェブサーバを効果的に管理するためには、サーバの活動やパフォーマンス、
    40      今発生しているかもしれない問題に関するフィードバックを得ることが必要です。
    41      Apache HTTP サーバには非常に包括的で柔軟なロギング機能があります。
    42      この文書はロギング機能の設定の仕方と、ログに何が書かれているかを
    43      理解するための方法を説明します。</p>
    44    </div>
    45  <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#security">
    46      セキュリティに関する警告</a></li>
    47  <li><img alt="" src="./images/down.gif" /> <a href="#errorlog">エラーログ</a></li>
    48  <li><img alt="" src="./images/down.gif" /> <a href="#accesslog">アクセスログ</a></li>
    49  <li><img alt="" src="./images/down.gif" /> <a href="#rotation">ログの交替</a></li>
    50  <li><img alt="" src="./images/down.gif" /> <a href="#piped">パイプ経由のログ</a></li>
    51  <li><img alt="" src="./images/down.gif" /> <a href="#virtualhosts">バーチャルホスト</a></li>
    52  <li><img alt="" src="./images/down.gif" /> <a href="#other">他のログファイル</a></li>
    53  </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
    54  <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
    55  <div class="section">
    56  <h2><a name="security" id="security">
    57      セキュリティに関する警告</a></h2>
    58  
    59      <p>Apache がログファイルを書いているディレクトリに書き込める人は、
    60      ほぼ確実にサーバが起動された uid へのアクセスを手に入れることができます。
    61      そして、それは通常は root ユーザです。
    62      ちゃんと結果を考えることなく、そのディレクトリへの
    63      書き込み権限を与え<em>ない</em>でください。詳しくは
    64      <a href="misc/security_tips.html">セキュリティのこつ</a>の文書を
    65      読んでください。</p>
    66  
    67      <p>加えて、ログファイルにはクライアントからの情報がそのまま、
    68      エスケープされることなく書かれています。ですから、悪意のある
    69      クライアントがログファイルに制御文字を挿入することができます。
    70      生のログを扱うときは注意してください。</p>
    71    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
    72  <div class="section">
    73  <h2><a name="errorlog" id="errorlog">エラーログ</a></h2>
    74      
    75      <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td /><td><ul><li><code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code></li><li><code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code></li></ul></td></tr></table>
    76  
    77      <p><code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> ディレクティブにより
    78      名前と場所が決まるサーバのエラーログは、一番重要なログファイルです。
    79      Apache の診断情報はここに送られ、リクエストを処理しているときに
    80      発生したエラーはすべてここに記録されます。サーバを起動したときや、
    81      サーバの動作に問題が起こったときは、一番最初に調べるべき
    82      ところです。間違いの詳細や修正方法がそこに書かれていることが
    83      よくあります。</p>
    84  
    85      <p>エラーログは普通はファイルに書かれます (通常 unix システムでは
    86      <code>error_log</code>、Windows と OS/2 では <code>error.log</code>)。
    87      Unix システムではエラーを <code>syslog</code> や
    88      <a href="#piped">パイプでプログラムに送る</a> ことができます。</p>
    89  
    90      <p>エラーログの書式は比較的自由度の高いもので、説明的に書かれています。
    91      ただし、いくつかの情報はほとんどのエラーログのエントリにあります。
    92      例えば、代表的なものに次のようなメッセージがあります。</p>
    93  
    94      <div class="example"><p><code>
    95        [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1]
    96        client denied by server configuration:
    97        /export/home/live/ap/htdocs/test
    98      </code></p></div>
    99  
   100      <p>ログエントリの最初の項目はメッセージの日付と時刻です。
   101      二つめの項目は報告されているエラーの重要度です。
   102      <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> で重要度のレベルを
   103      制限することによりエラーログに送られるエラーの種類を制御することが
   104      できます。三つ目の項目はエラーを発生させたクライアントの IP アドレス
   105      です。残りはメッセージで、この場合はサーバがクライアントのアクセスを
   106      拒否するように設定されている、ということを示しています。
   107      サーバはリクエストされた文書の (ウェブのパスではなく) ファイルシステムの
   108      パスを報告します。</p>
   109  
   110      <p>非常に広範囲のメッセージがエラーログに現れます。たいていのものは
   111      上の例のような感じです。エラーログには CGI スクリプトのデバッグ
   112      出力も書かれます。CGI スクリプトが <code>stderr</code> に書いた
   113      すべての情報は直接エラーログにコピーされます。</p>
   114  
   115      <p>情報を追加したり削除したりしてエラーログをカスタマイズすることは
   116      できません。しかし、リクエストに対するエラーログのエントリは、
   117      対応するエントリが<a href="#accesslog">アクセスログ</a>にあります。
   118      例えば、上の例のエントリはアクセスログのステータスコード 403 の
   119      エントリに対応します。アクセスログはカスタマイズ可能ですので、
   120      そちらを使うことによりエラーの状況に関する情報をより多く
   121      手に入れることができます。</p>
   122  
   123      <p>テストの最中は、問題が発生しているかどうかを見るために、
   124      常にエラーログを監視するのが役に立つ場合がよくあります。
   125      Unix システムでは、次のものを使うことができます。</p>
   126  
   127      <div class="example"><p><code>
   128        tail -f error_log
   129      </code></p></div>
   130    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   131  <div class="section">
   132  <h2><a name="accesslog" id="accesslog">アクセスログ</a></h2>
   133      
   134  
   135      <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li></ul></td></tr></table>
   136  
   137      <p>サーバアクセスログはサーバが処理をしたすべてのリクエストを
   138      記録します。アクセスログの場所と内容は <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
   139      ディレクティブにより決まります。ログの内容の選択を簡潔にするために
   140      <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>
   141      ディレクティブを使用することができます。このセクションはアクセスログに
   142      情報を記録するためのサーバの設定方法を説明します。</p>
   143  
   144      <p>もちろん、アクセスログに情報を蓄積することはログ管理の
   145      始まりに過ぎません。次の段階は有用な統計を取るためにこの情報を
   146      解析することです。一般的なログ解析はこの文書の範囲外で、
   147      ウェブサーバ自身の仕事というわけでもありません。この話や、
   148      ログ解析を行なうアプリケーションの情報を得るには、<a href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_analysis/">
   149      Open Directory</a> や <a href="http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/Log_Analysis_Tools/">
   150      Yahoo</a> を調べてください。</p>
   151  
   152      <p>いろんなバージョンの Apache httpd が mod_log_config,
   153      mod_log_agent, <code>TransferLog</code> ディレクティブといった、
   154      他のモジュールやディレクティブを使ってアクセスのロギングを
   155      制御してきました。今では、<code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> がすべての古い
   156      ディレクティブの機能を含むようになっています。</p>
   157  
   158      <p>アクセスログの書式は非常に柔軟な設定が可能です。
   159      書式は C の printf(1) フォーマット文字列に非常に似た
   160      <code class="directive"><a href="./mod/mod_log_config.html#フォーマット文字列">フォーマット文字列</a></code>
   161      により指定されます。いくつか次の節で例を示します。
   162      フォーマット文字列に使用できる内容の一覧は <a href="mod/mod_log_config.html">mod_log_config の文書</a>
   163      を見てください。</p>
   164  
   165      <h3><a name="common" id="common">Common Log Format</a></h3>
   166        
   167  
   168        <p>アクセスログのよくある設定に以下のものがあります。</p>
   169  
   170        <div class="example"><p><code>
   171          LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
   172           CustomLog logs/access_log common
   173        </code></p></div>
   174  
   175        <p>これは、<em>ニックネーム</em> <code>common</code> を定義し、
   176        ログのフォーマット文字列の一つと関連付けます。フォーマット文字列は
   177        パーセントディレクティブからなり、それぞれのパーセントディレクティブは
   178        サーバにどの情報をロギングするかを指示します。フォーマット文字列に
   179        文字をそのまま入れることもでき、それらはログの出力に直接コピーされます。
   180        そこに引用文字 (<code>"</code>) を書くときは、
   181        フォーマット文字列の最後として解釈
   182        されることを防ぐためにバックスラッシュでエスケープする必要があります。
   183        フォーマット文字列には改行用の "<code>\n</code>"、タブ用の
   184        "<code>\t</code>" という特別な制御文字も含めることができます。</p>
   185  
   186        <p><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> ディレクティブは
   187        既に定義された
   188        <em>ニックネーム</em> を使って新しいログファイルを設定します。
   189        アクセスログのファイル名はスラッシュで始まらない限り、
   190        <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> からの相対パスとして
   191        扱われます。</p>
   192  
   193        <p>上の設定は Common Log Format (CLF) と呼ばれる形式で
   194        ログエントリを書きます。この標準の形式は異なるウェブサーバの多くが
   195        生成することができ、多くのログ解析プログラムが読みこむことができます。
   196        CLF により生成されたログファイルのエントリは以下のようになります:</p>
   197  
   198        <div class="example"><p><code>
   199          127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
   200          /apache_pb.gif HTTP/1.0" 200 2326
   201        </code></p></div>
   202  
   203        <p>このログエントリのそれぞれの部分の意味は以下で説明します。</p>
   204  
   205        <dl>
   206  	<dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
   207  
   208  	<dd>これはサーバへリクエストをしたクライアント (リモートホスト)
   209  	の IP アドレスです。<code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code> が
   210  	<code>On</code> の場合は、サーバはホスト名を調べて、
   211  	IP アドレスが書かれているところに記録します。しかし、この設定は
   212  	サーバをかなり遅くするので、あまりお勧めできません。
   213  	そうではなく、<code class="program"><a href="./programs/logresolve.html">logresolve</a></code> の
   214  	ようなログの後処理を行なうプログラムでホスト名を調べるのが良いでしょう。
   215  	ここに報告される IP アドレスは必ずしもユーザが使っているマシンの
   216  	ものであるとは限りません。ユーザとサーバの間にプロキシサーバが
   217  	あれば、このアドレスは元のマシンのものではなく、プロキシの
   218  	アドレスになります。</dd>
   219  
   220  	<dt><code>-</code> (<code>%l</code>)</dt>
   221  
   222  	<dd>出力中の「ハイフン」は要求された情報が手に入らなかったということを
   223  	意味します。この場合、取得できなかった情報はクライアントのマシンの
   224  	<code>identd</code> により決まる RFC 1413 のクライアントの
   225  	アイデンティティです。この情報はあまり信用することができず、
   226  	しっかりと管理された内部ネットワークを除いては使うべきではありません。
   227  	Apache は <code class="directive"><a href="./mod/core.html#identitycheck">IdentityCheck</a></code> が
   228  	<code>On</code> になっていない限り、この情報を得ようとすらしません。</dd>
   229  
   230  	<dt><code>frank</code> (<code>%u</code>)</dt>
   231  
   232  	<dd>これは HTTP 認証による、ドキュメントをリクエストした人の
   233  	ユーザ ID です。CGI スクリプトには通常同じ値が <code>REMOTE_USER</code>
   234  	環境変数として与えられます。リクエストのステータスコード
   235  	(以下を参照) が 401 であった場合は、ユーザは認証に失敗しているので、
   236  	この値は信用できません。ドキュメントがパスワードで保護されていない
   237  	場合は、このエントリは前のものと同じように "<code>-</code>" に
   238  	なります。</dd>
   239  
   240  	<dt><code>[10/Oct/2000:13:55:36 -0700]</code>
   241  	(<code>%t</code>)</dt>
   242  
   243  	<dd>
   244  	  サーバがリクエストを受け取った時刻です。書式は:
   245  
   246  	    <p class="indent">
   247  	      <code>[day/month/year:hour:minute:second zone]<br />
   248  	       day = 2*digit<br />
   249  	       month = 3*letter<br />
   250  	       year = 4*digit<br />
   251  	       hour = 2*digit<br />
   252  	       minute = 2*digit<br />
   253  	       second = 2*digit<br />
   254  	       zone = (`+' | `-') 4*digit</code>
   255  	    </p>
   256  	  ログのフォーマット文字列に <code>%{format}t</code> を
   257  	  指定することで、別の形式で時刻を表示させることもできます。
   258  	  このとき、<code>format</code> は C の標準ライブラリの
   259  	  <code>strftime(3)</code> の形式になります。
   260  	</dd>
   261  
   262  	<dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
   263  	(<code>\"%r\"</code>)</dt>
   264  
   265  	<dd>クライアントからのリクエストが二重引用符の中に示されています。
   266  	リクエストには多くの有用な情報があります。まず、この場合クライアントが
   267  	使ったメソッドは <code>GET</code> です。次に、クライアントは
   268  	リソース <code>/apache_pb.gif</code> を要求しました。そして、
   269  	クライアントはプロトコル <code>HTTP/1.0</code> を使用しました。
   270  	リクエストの各部分を独立にログ収集することもできます。例えば、
   271  	フォーマット文字列 "<code>%m %U%q %H</code>" は
   272  	メソッド、パス、クエリ文字列、プロトコルをログ収集し、
   273  	結局 "<code>%r</code>" とまったく同じ出力になります。</dd>
   274  
   275  	<dt><code>200</code> (<code>%&gt;s</code>)</dt>
   276  
   277  	<dd>サーバがクライアントに送り返すステータスコードです。
   278  	この情報は、リクエストが成功応答 (2 で始まるコード) であったか、
   279  	リダイレクション (3 で始まるコード) であったか、クライアントによる
   280  	エラー (4 で始まるコード) であったか、サーバのエラー (5 で始まるコード)
   281  	であったか、を表すので、非常に大切です。ステータスコードの
   282  	完全なリストは <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">HTTP
   283  	規格</a> (RFC2616 第 10 節) にあります。</dd>
   284  
   285  	<dt><code>2326</code> (<code>%b</code>)</dt>
   286  
   287  	<dd>この最後のエントリはクライアントに送信されたオブジェクトの、
   288  	応答ヘッダを除いたサイズを表します。コンテントがクライアントに送られなかった
   289  	場合は、この値は "<code>-</code>" になります。コンテントが無い場合に
   290  	"<code>0</code>" をログ収集するには、<code>%b</code> ではなく
   291  	<code>%B</code> を使ってください。</dd>
   292  
   293        </dl>
   294      
   295  
   296      <h3><a name="combined" id="combined">Combined Log Format</a></h3>
   297        
   298  
   299        <p>もう一つのよく使われる書式は Combined Log Format と呼ばれています。
   300        以下のようにして使うことができます。</p>
   301  
   302        <div class="example"><p><code>
   303          LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
   304          \"%{User-agent}i\"" combined<br />
   305           CustomLog log/access_log combined
   306        </code></p></div>
   307  
   308        <p>この書式の最初の方は Common Log Format とまったく同じで、最後に
   309        二つ追加のエントリがあります。追加のエントリはパーセントディレクティブ
   310        <code>%{<em>header</em>}i</code> を使っています。ここで
   311        <em>header</em> は HTTP のリクエストヘッダのどれかです。この書式による
   312        アクセスログは以下のような感じになります:</p>
   313  
   314        <div class="example"><p><code>
   315          127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
   316          /apache_pb.gif HTTP/1.0" 200 2326
   317          "http://www.example.com/start.html" "Mozilla/4.08 [en]
   318          (Win98; I ;Nav)"
   319        </code></p></div>
   320  
   321        <p>追加のエントリは:</p>
   322  
   323        <dl>
   324  	<dt><code>"http://www.example.com/start.html"</code>
   325  	(<code>\"%{Referer}i\"</code>)</dt>
   326  
   327  	<dd>"Referer" (意図的な綴り間違い) HTTP リクエストヘッダです。
   328  	これはクライアントが報告してくる参照元のサイトを表します。
   329  	(この場合は、<code>/apache_pb.gif</code> にリンクしているか、
   330  	それを含んでいるページです)。</dd>
   331  
   332  	<dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
   333  	(<code>\"%{User-agent}i\"</code>)</dt>
   334  
   335  	<dd>User-Agent HTTP リクエストヘッダです。これはクライアントのブラウザが
   336  	自分自身のことを報告してくる情報です。</dd>
   337        </dl>
   338      
   339  
   340      <h3><a name="multiple" id="multiple">複数のアクセスログ</a></h3>
   341        
   342  
   343      <p>複数のアクセスログは単に設定ファイルに複数の <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
   344      ディレクティブを書くことで作成されます。例えば、以下のディレクティブは
   345      三つのアクセスログを作ります。最初のものは基本的な CLF の情報で、
   346      二つ目と三つ目は referer とブラウザの情報です。最後二つの
   347      <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> は
   348      <code>ReferLog</code> ディレクティブと
   349      <code>AgentLog</code> ディレクティブの効果をまねる方法を示しています。</p>
   350  
   351        <div class="example"><p><code>
   352          LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
   353          CustomLog logs/access_log common<br />
   354          CustomLog logs/referer_log "%{Referer}i -&gt; %U"<br />
   355          CustomLog logs/agent_log "%{User-agent}i"
   356        </code></p></div>
   357  
   358      <p>この例は <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> で
   359      ニックネームを定義する必要がない、
   360      ということも示しています。ニックネームの代わりに、
   361      <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> ディレクティブに
   362      直接ログの書式を指定することができます。</p>
   363      
   364  
   365      <h3><a name="conditional" id="conditional">条件付きログ</a></h3>
   366        
   367  
   368      <p>クライアントのリクエストの特徴に基づいてアクセスログにエントリの
   369      一部をロギングしない方が便利なことがあります。これは <a href="env.html">環境変数</a> の補助により簡単に実現できます。まず、
   370      リクエストが何らかの条件に合うということを表すために環境変数が
   371      設定される必要があります。これは通常は <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> により
   372      行なわれます。そして、<code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> ディレクティブの
   373      <code>env=</code> 節を使って環境変数が設定されているリクエストを
   374      含めたり排除したりすることができます。いくつか例を挙げます:</p>
   375  
   376        <div class="example"><p><code>
   377          # Mark requests from the loop-back interface<br />
   378          SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog<br />
   379          # Mark requests for the robots.txt file<br />
   380          SetEnvIf Request_URI "^/robots\.txt$" dontlog<br />
   381          # Log what remains<br />
   382          CustomLog logs/access_log common env=!dontlog
   383        </code></p></div>
   384  
   385      <p>他の例として、英語を話す人からのリクエストとそれ以外の人からのリクエストを
   386      分けたい、という場合を考えてみてください。</p>
   387  
   388        <div class="example"><p><code>
   389          SetEnvIf Accept-Language "en" english<br />
   390          CustomLog logs/english_log common env=english<br />
   391          CustomLog logs/non_english_log common env=!english
   392        </code></p></div>
   393  
   394      <p>ここまででは条件付きロギングが非常に強力で柔軟であることを示してきましたが、
   395      それがログの内容を制御する唯一の方法というわけではありません。ログファイルは
   396      サーバの活動の完全な記録である方がより役に立ちます。単純にログファイルを
   397      後処理して、考慮したくないログを削除する方が簡単であることがよくあります。</p>
   398      
   399    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   400  <div class="section">
   401  <h2><a name="rotation" id="rotation">ログの交替</a></h2>
   402      
   403  
   404      <p>普通の負荷のサーバでさえ、ログファイルに保存される情報の量は
   405      膨大になります。アクセスログのファイルは普通 10,000 リクエスト毎に
   406      1 MB 以上増えます。ですから、既存のログを移動したり、削除したりして、
   407      定期的にログを交替させることが必要になります。これはサーバの実行中には
   408      行なえません。というのは、Apache はファイルが open されている間は
   409      ずっと古いログファイルに書き続けるからです。
   410      新しいログファイルを open できるように、ログファイルが移動されたり
   411      削除された後に、サーバを<a href="stopping.html">再起動</a>する
   412      必要があります。</p>
   413  
   414      <p><em>優雅な</em> 再起動を行なうことで、サーバは既存のコネクションや
   415      処理待ちのコネクションを失うことなく新しいログファイルを open させる
   416      ことができます。しかし、これを実現するために、サーバは古いリクエストを
   417      扱っている間は古いログファイルに書き続ける必要があります。
   418      ですから、再起動の後ではログファイルの処理を始める前に、しばらく待たなければ
   419      なりません。単にログを交替させて、ディスクの節約のために古いログを
   420      圧縮する普通のシナリオは:</p>
   421  
   422      <div class="example"><p><code>
   423        mv access_log access_log.old<br />
   424        mv error_log error_log.old<br />
   425        apachectl graceful<br />
   426        sleep 600<br />
   427        gzip access_log.old error_log.old
   428      </code></p></div>
   429  
   430      <p>ログの交替をするもう一つの方法は<a href="#piped">パイプ経由のログ</a>を使うもので、次の節で説明されています。</p>
   431    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   432  <div class="section">
   433  <h2><a name="piped" id="piped">パイプ経由のログ</a></h2>
   434      
   435  
   436      <p>Apache httpd はエラーログとアクセスログをファイルに直接書く代わりに、
   437      パイプを通して別のプログラムに書き出すことができます。
   438      この機能により、主サーバにコードを追加することなく
   439      ロギングの柔軟性が非常に高まっています。パイプにログを書くためには、
   440      単にファイル名をパイプ文字 "<code>|</code>" に置き換え、その続きに
   441      標準入力からログのエントリを受けとる実行プログラムの名前を書くだけです。
   442      Apache はパイプ経由のログ用のプロセスをサーバの起動時に実行し、
   443      サーバの実行中にそのプログラムがクラッシュしたときはそれを再び
   444      実行します。(この最後の機能がこの技術が「信頼性のあるパイプ経由のロギング」
   445      と呼ばれている理由です。)</p>
   446  
   447      <p>パイプ経由のログ用のプロセスは Apache httpd の親プロセスから起動され、
   448      そのプロセスのユーザ ID を継承します。これは、パイプ経由のログ用の
   449      プログラムは普通 root として実行されることを意味します。
   450      ですから、プログラムを簡単で安全に保つことが非常に重要です。</p>
   451  
   452      <p>パイプ経由のログの重要な利用法は、サーバの再起動なしでログの交替を
   453      することです。Apache HTTP サーバにはこのための  <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code> と呼ばれる簡単な
   454      プログラムが付属しています。たとえば、24 時間毎にログを交替させるには、
   455      以下のものを使うことができます:</p>
   456  
   457      <div class="example"><p><code>
   458        CustomLog "|/usr/local/apache/bin/rotatelogs
   459        /var/log/access_log 86400" common
   460      </code></p></div>
   461  
   462      <p>パイプの先で呼ばれるコマンド全体が引用符で囲まれていることに注目して
   463      ください。この例はアクセスログを使っていますが、エラーログにも同じ技術を
   464      使うことができます。</p>
   465  
   466      <p>似ているけれど、よりずっと柔軟な
   467      <a href="http://www.cronolog.org/">cronolog</a> というログ交替用の
   468      プログラムが外部のサイトにあります。</p>
   469  
   470      <p>条件付きロギングと同様、パイプ経由のログは非常に強力な
   471      道具ですが、オフラインの後処理のような、より簡単な解決方法があるときは
   472      使わない方が良いでしょう。</p>
   473    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   474  <div class="section">
   475  <h2><a name="virtualhosts" id="virtualhosts">バーチャルホスト</a></h2>
   476      
   477  
   478      <p>多くの <a href="vhosts/">バーチャルホスト</a> のあるサーバを実行している
   479      ときは、ログファイルの扱い方にいくつかの方法があります。
   480      まず、単独のホストのみのサーバとまったく同じようにログを使うことができます。
   481      ロギングディレクティブを主サーバのコンテキストの
   482      <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> セクションの外に置くことで、
   483      すべてのログを同じアクセスログとエラーログにログ収集することができます。
   484      この手法では個々のバーチャルホストの統計を簡単にとることはできません。</p>
   485  
   486      <p><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> や
   487      <code class="directive"><a href="./mod/mod_log_config.html#errorlog">ErrorLog</a></code> ディレクティブが
   488      <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> の中に
   489      置かれた場合は、そのバーチャル
   490      ホストへのすべてのリクエストやエラーがそこで指定されたファイルにのみ
   491      ログ収集されます。ロギングディレクティブのないバーチャルホストは
   492      依然としてリクエストが主サーバのログに送られます。この手法は少ない
   493      バーチャルホストに対しては非常に有用ですが、ホストの数が非常に多くなると
   494      管理が大変になります。さらに、<a href="vhosts/fd-limits.html">ファイル記述子の限界</a>の問題を起こすことが
   495      あります。</p>
   496  
   497      <p>アクセスログには、非常に良い妥協案があります。バーチャルホストの
   498      情報をログのフォーマット文字列に加えることで、すべてのホストへの
   499      リクエストを同じログにログ収集して、後でログを個々のファイルに分割することが
   500      できます。たとえば、以下のディレクティブを見てください。</p>
   501  
   502      <div class="example"><p><code>
   503        LogFormat "%v %l %u %t \"%r\" %&gt;s %b"
   504        comonvhost<br />
   505        CustomLog logs/access_log comonvhost
   506      </code></p></div>
   507  
   508      <p><code>%v</code> がリクエストを扱っているバーチャルホストの名前を
   509      ログ収集するために使われています。そして、<a href="programs/other.html">split-logfile</a> のようなプログラムを
   510      使ってアクセスログを後処理することで、
   511      バーチャルホスト毎のファイルにログを分割することができます。</p>
   512  
   513      <p>残念ながら、エラーログには同様の手法はありません。ですから、
   514      すべてのバーチャルホストを同じエラーログの中に混ぜるか、
   515      バーチャルホスト毎にエラーログを使うかを選ばなければなりません。</p>
   516    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   517  <div class="section">
   518  <h2><a name="other" id="other">他のログファイル</a></h2>
   519      
   520  
   521      <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_log_forensic.html#forensiclog">ForensicLog</a></code></li><li><code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptloglength">ScriptLogLength</a></code></li></ul></td></tr></table>
   522  
   523      <h3>実際に送受信したバイト数のログ</h3>
   524        
   525  
   526        <p><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code> は、
   527           ネットワーク上で実際に送受信した数をログする
   528           二つのフィールド (%I と %O) を
   529           <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> 
   530           ディレクティブに追加します。</p>
   531      
   532  
   533      <h3>Forensic ログ</h3>
   534        
   535  
   536        <p><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code> はクライアントリクエストの
   537           forensic ログを取ります。ログはリクエスト処理前と処理後に
   538           行われますので、1 リクエストに対して 2 行のログが出力されます。
   539           forensic ロガーはとても厳密でカスタマイズできません。
   540           デバッグやセキュリティ用のツールとして有効かもしれません。</p>
   541      
   542  
   543      <h3><a name="pidfile" id="pidfile">PID ファイル</a></h3>
   544        
   545  
   546        <p>起動時に、Apache は親 httpd プロセスのプロセス ID を
   547        <code>logs/httpd.pid</code> に保存します。この
   548        ファイル名は <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> ディレクティブを使って
   549        変更することができます。プロセス ID は管理者が親プロセスに
   550        シグナルを送ることでデーモンを再起動したり終了させたりするときに
   551        使用します。Windows では、代わりに -k コマンドオプションを
   552        使ってください。詳しい情報は <a href="stopping.html">終了と
   553        再起動</a> のページを見てください。</p>
   554      
   555  
   556      <h3><a name="scriptlog" id="scriptlog">スクリプトログ</a></h3>
   557        
   558  
   559        <p>デバッグの補助のために、<code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code> ディレクティブは
   560        CGI スクリプトの入力と出力を記録するようにできます。
   561        これはテスト用にのみ使用して、通常のサーバでは使用しないでください。
   562        詳しい情報は <a href="mod/mod_cgi.html">mod_cgi の文書</a> にあります。</p>
   563      
   564  
   565      <h3><a name="rewritelog" id="rewritelog">リライトログ</a></h3>
   566        
   567  
   568        <p><code class="directive"><a href="./mod/mod_rewrite.html#mod_rewrite">mod_rewrite</a></code> の強力で
   569        複雑な機能を
   570        使っているときは、ほぼいつもデバッグを簡単にするために
   571        <code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code> の使用が
   572        必要でしょう。このログファイルにはリライトエンジンがリクエストを
   573        書き換える方法の詳細な解析が出力されます。詳しさの度合は <code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code>
   574        で制御できます。</p>
   575      
   576    </div></div>
   577  <div class="bottomlang">
   578  <p><span>翻訳済み言語: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
   579  <a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
   580  <a href="./ja/logs.html" title="Japanese">&nbsp;ja&nbsp;</a> |
   581  <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
   582  <a href="./tr/logs.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   583  </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
   584  <script type="text/javascript"><!--//--><![CDATA[//><!--
   585  var comments_shortname = 'httpd';
   586  var comments_identifier = 'http://httpd.apache.org/docs/2.2/logs.html';
   587  (function(w, d) {
   588      if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
   589          d.write('<div id="comments_thread"><\/div>');
   590          var s = d.createElement('script');
   591          s.type = 'text/javascript';
   592          s.async = true;
   593          s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
   594          (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
   595      }
   596      else { 
   597          d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
   598      }
   599  })(window, document);
   600  //--><!]]></script></div><div id="footer">
   601  <p class="apache">Copyright 2017 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
   602  <p class="menu"><a href="./mod/">モジュール</a> | <a href="./mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">用語</a> | <a href="./sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
   603  if (typeof(prettyPrint) !== 'undefined') {
   604      prettyPrint();
   605  }
   606  //--><!]]></script>
   607  </body></html>