- PR -

TomcatのログとHTTPエラーについて

1
投稿者投稿内容
さき
会議室デビュー日: 2004/02/24
投稿数: 2
投稿日時: 2004-03-08 17:36
はじめまして。java初心者ですが、どうしてもわからないことがあり、
ご教授いただきたくて、投稿いたします。

いま、動かしているWebアプリのログをより詳細にとりたいと考えています。

ログといえば、独自にLog4Jなどを用いて、吐き出させる方法もある
と思うのですが、Tomcat自身が出しているログを詳細にする方法は
ないのでしょうか。

というのは、例えば、存在しないページを参照したときに、
HTTP404のエラーが出ると思うのですが、
こういったものは、ブラウザに表示されるだけで、
コンソールやログには出てこないのなのですが、
これらは、そもそもログにでないものなのでしょうか?
(もちろん、自分で残す方法はあるんですけど・・・)

また、server.xmlのデバッグレベルをあげることで、
ログを詳細にできるということを見たのですが
変えてみたものの、とくに変化は見られず、
どういうようにログが詳細になるのかわからず、困っています。

もし、HTTPエラーをログに自動的に出す方法をご存知の方、
また、そもそもそんなものは自動的にはでない!ということを
ご存知の方、server.xmlで変わるログの詳細がどういうことなのかご存知の方、
いらっしゃいましたら、ぜひログについてご教授ください。

どうぞよろしくお願いします。

---------------------
<環境>
Tomcat 5.0
java 1.4.2_01
ANT 1.5.3-1
OS Windows2000
DB Access97
---------------------
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-03-08 17:45
引用:

というのは、例えば、存在しないページを参照したときに、
HTTP404のエラーが出ると思うのですが、
こういったものは、ブラウザに表示されるだけで、
コンソールやログには出てこないのなのですが、


404が出るような場合はerror.logに書き出される筈ですが、
そちらはチェックされましたか?
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2004-03-08 20:09
それは Apache のアクセスログの様なもので良いのでしょうか。

Tomcat でもアクセスログは出力できます。
デフォルトの server.xml に AccessLogValve を定義した
Valve 要素がコメントアウトされてますので、取りあえず
それを有効にすれば良いです。
さき
会議室デビュー日: 2004/02/24
投稿数: 2
投稿日時: 2004-03-09 11:07
おばけぬしさん、はしもとさん、
さっそくのお返事ありがとうございます。

>おばけぬしさん
すみません。error.loglというものがどこにあるのか、わかりませんでした。
わたしがいま、見ているのは、tomcatのlogsフォルダの中の
catalina_log.日付と、localhost_admin_log.日付と、
localhost_log.日付と、stderr.log、stdout.logだったのですが。。

それ以外にもログがあるのですか?
ちなみにOSは、WIN2000です。

>はしもとさん
AccessLogValueのコメントはずしてやってみました。
確かに、アクセスログが取れるようになりました!!
ありがとうございました。

ところで、さらに質問なのですが、
server.xmlのデバッグレベルを上げて、詳細になるものって
どういうものなのですか?いろいろやってみるのですが、何ら変化が起こらないので、
どこか見ている場所や、起こしているエラーの種類が見当違いかと思っています。
ご存知でしたら、教えていただきたいのですが・・・。
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2004-03-09 12:06
引用:
server.xmlのデバッグレベルを上げて、詳細になるものって
どういうものなのですか?いろいろやってみるのですが、何ら変化が起こらないので、
どこか見ている場所や、起こしているエラーの種類が見当違いかと思っています。



詳細になるものは debug 属性を定義したクラスのログ出力です。
例えば Context 要素の debug 属性を 1 にした場合、Context 要素の
デフォルトのクラスは org.apache.catalina.core.StandardContext で、
そのソースの中で、例えば

コード:
if (debug >= 1)
    log("...");



の様になっている行が出力されるようになります。

出力される場所は、その要素を定義した同階層以上で定義した Logger 要素
です。(Context 要素以外は調べてないですけど)
1

スキルアップ/キャリアアップ(JOB@IT)