VirtualHost毎にログファイルとログフォーマットを分けて管理

バーチャルホスト単位でログファイルを分割しログの記録形式をカスタマイズ

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では、リファラやユーザーエージェント、バーチャルホスト名なども記録されるので、サーバ管理者の好みで設定をカスタマイズできる。カスタムログの書式

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

VirtualHost毎にログファイルとログフォーマットを分けて管理の記事にコメントを投稿