投稿日:2003年09月29日 作成鷹の巣

No.12605 Apache2.0.47で、使用ユーザ単位のアクセスログ記録方法を取る方法は?



Apache2.0.47で、使用ユーザ単位のアクセスログ記録方法を取る方法は?

No.12605 投稿時間:2003年09月29日(Mon) 16:50 投稿者名:Bitter URL:

はじめまして、Bitterと申します。
色々探したのですが探し方が悪いのか、それとも、
私がしようとしている事が出来ないのか、どちらにしても
情報が入手できず、こちらに書込みさせて頂きました。

環境はWindows2000、Apache2.0.47を使用しています。
私がしたい事は、UserDri別だけのaccess.logをとりたいのですが
そのようなことは、できるのでしょうか?

今まで見てきた記事を元に、下記のような内容で設定してみたのですが
UserDriだけではなく、どうしても、DocumentRootのアクセスも一緒に
入ってしまいます。

LogFormat "%h %l \"%u\" %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" nolog
SetEnvIf Request_URI "^/~bitter/" bitterlog ←このbitterDriのアクセスがあった分だけをログに記録したい。
SetEnvIf Request_URI "^/_mem_bin/" warm nolog
SetEnvIf Request_URI "^/_vti_bin/" warm nolog
SetEnvIf Request_URI "^/msadc/" warm nolog
SetEnvIf Request_URI "^/scripts/" warm nolog
SetEnvIf Request_URI "^/default.ida" warm nolog

CustomLog logs/bitter.log. combined env=!nolog
CustomLog logs/access.log. combined env=!nolog
CustomLog logs/warm.log. combined env=warm

色んなサイトを頼りに、みよう見真似でこのような状態で設定してみましたが、
bitter.logに書き出されるログは、通常のaccess.logと変わらないものが
出力されます。
bitter.logには、DocumentRoot(http://****.com/)のアクセスも含まれてしまいます。
期待しているのはhttp://****.com/~bitter/以下のディレクトリ分の
ログの記録なのですが・・・。

そもそも私の設定の仕方が間違っていると思われますが、
何かアドバイスを頂ければ幸いです。
どうか、よろしくお願い致します。


設定どおり動いているだけです。

No.12609 投稿時間:2003年09月29日(Mon) 19:30 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

こんばんは。

> 私がしたい事は、UserDri別だけのaccess.logをとりたいのですが
> そのようなことは、できるのでしょうか?

 できます。設定どおり動いているだけで、やりたい内容に設定できていません。
SetEnvIfディレクティブの使い方とperlの正規表現を理解しないとつらいですね。
下記を参考にしてください。

 http://httpd.apache.org/docs-2.0/ja/mod/mod_setenvif.html

> 今まで見てきた記事を元に、下記のような内容で設定してみたのですが
> UserDriだけではなく、どうしても、DocumentRootのアクセスも一緒に
> 入ってしまいます。
> 
> LogFormat "%h %l \"%u\" %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
> 
> SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" nolog
> SetEnvIf Request_URI "^/~bitter/" bitterlog ←このbitterDriのアクセスがあった分だけをログに記録したい。
> SetEnvIf Request_URI "^/_mem_bin/" warm nolog
> SetEnvIf Request_URI "^/_vti_bin/" warm nolog
> SetEnvIf Request_URI "^/msadc/" warm nolog
> SetEnvIf Request_URI "^/scripts/" warm nolog
> SetEnvIf Request_URI "^/default.ida" warm nolog
> 
> CustomLog logs/bitter.log. combined env=!nolog
> CustomLog logs/access.log. combined env=!nolog
> CustomLog logs/warm.log. combined env=warm
 
SetEnvIf Request_URI "\.(gif|jpg|png|css)$" nolog <-これは、趣味。
SetEnvIf Request_URI "^/~bitter/" bitterlog nolog <-access.logにbitterのログを入れないためnologも追加
SetEnvIf Request_URI "^/_mem_bin/" warm nolog
SetEnvIf Request_URI "^/_vti_bin/" warm nolog
SetEnvIf Request_URI "^/msadc/" warm nolog
SetEnvIf Request_URI "^/scripts/" warm nolog
SetEnvIf Request_URI "^/default.ida" warm nolog
CustomLog logs/bitter.log combined env=bitterlog <-2行目で/~bitter/へのアクセスはbitterlogとnologという
                                                    環境変数を割り付けているので素直にbitterlogとすれば、
                                                    これだけがlogされたのですが。
CustomLog logs/access.log combined env=!nolog    <-2行目で/~bitter/へのアクセスはnologという環境変数にも
                                                    割り付けたので、ここにはlogされない。
CustomLog logs/warm.log combined env=warm
 
> 色んなサイトを頼りに、みよう見真似でこのような状態で設定してみましたが、

みよう見真似ではなく、設定の意味を理解していないと後で修正できないですよね。


希望するログが出力されました。

No.12615 投稿時間:2003年09月30日(Tue) 08:14 投稿者名:Bitter URL:

おやじ様、お言葉を頂きましてありがとうございます。

> SetEnvIfディレクティブの使い方とperlの正規表現を理解しないとつらいですね。
> 下記を参考にしてください。
> http://httpd.apache.org/docs-2.0/ja/mod/mod_setenvif.html

ご紹介していただきありがとうございます。
サーバをTESTで立ち上げて1週間ほどになりますが、始めたばかりの私にはまだまだ難解の事が多く
皆様の所で勉強させて頂いています。
しかし、まだまだ勉強不足で、、、お恥ずかしい限りです。
お言葉を頂きまして早速設定いたしました所、おやじ様がおっしゃった通り
私の希望するログが出力されました。

GIF等の画像も一緒にログに記録されてしまうため、ない頭を絞り下記のように設定し
思った通りのログが出力され、喜んでおります。
これで、User名を変えることで家族別のホームページのログが、思っていたようにとれました。
これが本来正しい書き方なのかは、これから勉強してまいります。(汗
SetEnvIf Request_URI "\.(html|cgi)$"^/~bitter/" bitter nolog
CustomLog logs/bitter.log. combined env=bitter

> みよう見真似ではなく、設定の意味を理解していないと後で修正できないですよね。

これからも色々と勉強し、設定の意味などを理解し、自分の思った通りに設定が出来るように
頑張っていきたいと思います。
この度おやじ様には、お言葉、アドバイスを頂き本当にありがとうございました。


|目次|掲示板|過去ログ目次|▲頁先頭|