バーチャルホスト単位でログファイルを分割しログの記録形式をカスタマイズ
apacheのログファイルはxamppのデフォルトだと、
logs/access.log
に記録される。
バーチャルホストの数が増えてきたりすると管理が煩雑になり手に負えなくなってしまう事態になりうる。そうなる前にVirtual Host毎にログファイルを分割するのがおすすめ。ヴァーチャルホスト単位に分割記録した上で日時でログロテートするようにすれば管理がしやすくなる。
具体的な方法は
VirtualHostディレクティブごとにCustomLogを設定する方法で対応している。
httpd-vhosts.conf
<VirtualHost *:80> ServerName test.net CustomLog C:/xampp/apache/logs/access_test.net.log format1 </VirtualHost>
上の例はtest.netというホストに、そのホスト名をログファイル名として用いている例。ログファイル名を設定するだけでなく、
format1
という引数を与えている。これはログのフォーマットを指定する値で、具体的なログフォーマットは、httpd.conf側で設定している(httpd-vhosts.confは、httpd.confからインクルードされている)。
httpd.conf
<IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b" format1 LogFormat "%h %v %V %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" format2 </IfModule>
format1とformat2という2つの種類のログフォーマットを設定した状態が上の例。
format2では、リファラやユーザーエージェント、バーチャルホスト名なども記録されるので、サーバ管理者の好みで設定をカスタマイズできる。カスタムログの書式