web-dev-qa-db-ja.com

完全なURLをログに記録するApache CustomLog

CustomLogディレクティブをApache構成に追加して、要求された完全なURL(または少なくともURLのホスト部分)を記録します。 Apacheの同じインスタンスによって処理されているいくつかのドメインがあり、ログでドメインを区別できるようにしたいと考えています(現在、表示されているのは「GET /」だけです)。私は LogFormatのドキュメント に表示されます%U URLのパス部分を出力しますが、ホストを探しています。

16
jrdioko

LogFormatのドキュメントを読み続けると、次のことがわかります。

%...{Foobar}i:  The contents of Foobar: header line(s) in the request
                sent to the server.

つまり、構成に含めることができます。

%{Host}i

%vおよび%Vディレクティブを使用しても、必要なものが得られます。

%vは常にServerName(仮想ホストの「正規名」)の値になります。 %Vmay設定でServerNameを有効にしているかどうか(およびクライアントがHostを提供したかどうかに応じて)UseCanonicalNameの値、またはHTTP Hostヘッダーの値になる場合がありますヘッダ)。

20
larsks

'%v'は、ServerNameが必要なものである可能性がありますか?

2
agy

追加 %vをログ形式に変換します。

このようなもの:

LogFormat "%v - %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined-vhost
CustomLog /log/file/location combined-vhost
2
Shane Madden

LogFormat "%h%l%u%t \"%r\"%> s%b \"%{Referer} i\"\"%{User-Agent} i\"%{Host} i%U%q "組み合わせ

%{Host}i%U%q完全なURLを提供します。

2
borayeris