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
> みよう見真似ではなく、設定の意味を理解していないと後で修正できないですよね。
これからも色々と勉強し、設定の意味などを理解し、自分の思った通りに設定が出来るように
頑張っていきたいと思います。
この度おやじ様には、お言葉、アドバイスを頂き本当にありがとうございました。