電子書籍の厳選無料作品が豊富!

Servletを勉強し始め、少しずつ自分で書けるようになってきました。
そこで、デバッグについてお聞きしたいのですが・・・。

作ったservletにエラーがあった場合、ブラウザには何も返ってきません。で、サーバ側のコンソールを見てみると、(rootでtomcatを起動しているのですが)コンソールにエラーが次々と出ては流れていきます。しかし、一旦ROOTをログアウトするとエラーが起こってもメッセージは出てくれません。
そこで、エラーログが記録されているはずだと思い、参照しようとしたんですが、$TOMCAT_HOME/logs/ には exampleが2個とjasper-YYMMDD.log と、mod_jk.log、servlet-YYMMDD.logにtomcat.pid しかありません。一通り見たのですが起動とか呼び出されは書いてあるものの、エラーログではなさそうです。

一体エラーメッセージは何処へ・・・。
ちなみに、server.xml はLogSetterを確認してLogEventsをtrueにしてあります。

A 回答 (3件)

えーと、要するに、どこでエラーが出ているのかを確認したいということでいいですか?


Servlet自身は(というよりTomcatは)どこでエラーが出ているのかを明確に出力してはくれない(例外が発生したら別だが)ので、自分でデバッグ文を書くしかありません。
一番単純なやり方としては、log()を使うことです。
こんな感じ。

public void init() {
 log("init通過");
}

各所にlog()でメッセージを書いていけば、ログファイルにそのメッセージが出力されます。
つまりは、出力されていないlog()より前でエラーが出ているわけです。
log("Count = " + mCount);
とかすれば、現在のカウンタの値を出力する、なんてこともできるわけで。。。
    • good
    • 0
この回答へのお礼

たしかに、いちいち吐いてくれないようですね。
log()については初めて知りました。これでしばらく使ってみようと思います。
ありがとうございました。

お礼日時:2002/05/22 01:48

Tomcatでサーブレットから出力されるログをとりあえず保存しておきたい、という質問だとしたら


起動時に、
 startup.sh > tomcat.log 2> tomcat.errlog
みたいな感じで出力先のログファイルを指定すれば、
ファイルに保存できます。
    • good
    • 0
この回答へのお礼

コンソールに出力されるログだけでもなんとかなる場合があるので、この方法でも良いですね。
ありがとうございます、試してみます。

お礼日時:2002/05/22 01:50

Tomcatは使ったこと無いのでわかりませんが、別のサーブレット・エンジンではstdout.logやstderr.logに排出され

ています
    • good
    • 0
この回答へのお礼

ありがとうございます。
が、やはりエラーログらしきものはありませんでした・・・。(^-^;

お礼日時:2002/05/22 01:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!