====== ApacheのCustomLog ======
CustomLogを使用すると、いろいろなログを取ることができます。
プログラムの解析などにも利用できます。
===== デフォルトのcombinedのフォーマット =====
CustomLog /var/log/httpd/access_log combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
===== 例1 =====
こうすると処理時間を先頭に出力する事ができます。
CustomLog /var/log/httpd/access_log combined
LogFormat "%T %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
※Apacheのログに%T or %Dでリクエスト処理時間を載せることができます。
%Tと%Dは内部的には同じ計算値で、単位が異なるだけです(%Tは秒、%Dはマイクロ秒)。
[[02_freebsd:02_www:apacheのcustomlog#Apache2.4以降|Apache2.4以降]]
===== 例2 =====
こうするとクッキーを先頭に出力する事ができます。
CustomLog /var/log/httpd/access_log combined
LogFormat "%{cookie}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
===== パラメータ一覧 =====
^パラメータ^内容^
|%b|そのリクエストで行われたデータの転送量(bytes)|
|%f|リクエストされた仮想ディレクトリ+ファイル名|
|%{Foobar}e| 環境変数(Foobarで指定したもの)の内容|
|%h|リクエストしたコンピュータの名称またはIPアドレス|
|%a|リクエストしたコンピュータのIPアドレス|
|%{Foobar}i|リクエストヘッダ(Foobarで指定したもの)の内容|
|%l|リモートログ名(identdをクライアントがサポートしているとき)|
|%{Foobar}n|ほかのモジュールからのノート(Foobarで指定したもの)の内容|
|%{Foobar}o|レスポンスヘッダ(Foobarで指定したもの)の内容|
|%p|リクエストを受けたポートの番号|
|%P|リクエストを受けたApacheのプロセス番号(PID)|
|%r|リクエストの最初の行|
|%s|リクエストに対するHTTPのステータスコード(表3参照)|
|%t|リクエストされた時間(形式例:[08/Feb/2002:04:50:13 +0900])|
|%{format}t|リクエストされた時間(formatで指定した形式で記録)|
|%T|リクエストの処理に要した時間(秒)|
|%D|リクエストの処理に要した時間(マイクロ秒)|
|%u|クライアント側のユーザー名|
|%U|リクエストされたURLパス|
|%v|サーバがリクエストを処理する正統なServerName|
|%V|UseCanonicalNameの設定によるサーバ|
==== Apache2.4以降 ====
Apache2.4以降であれば、LogFormatディレクティブのフォーマット下記の記述することで、
リクエスト時間のエポック秒がミリ秒またはマイクロ秒で表示できるようです。
ミリ秒
%{msec}t
マイクロ秒
%{usec}t
{{tag>Apache}}