ウィリアムのいたずらの、まちあるき、たべあるきーPART2

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

WinXPで、「作業フォルダ」にハマり、ログが出ない(Apacheのlog4jの話)

 Apacheで、ログを出すために、log4jというライブラリがあります。

 で、それをJavaで使う方法については、こちらにまとめておきました。

 今回の話は、それを使って、ログを出そうとしたときの話。

(今回、log4j.jarをTomcatのcommon.libにおいています)




 コンソールには、ログが出るんです。
 でも、ファイルは、

  「どこ?」
  「どこ??」
  「どこーー???」

 って感じで、どこにも、書き出してない。
 Tomcatのlogsにもない。
 logsに書かれている、ほかのファイルをみても、この内容はない。
 うーん、なにか、書き方が悪いのかと思い、ちょっと、log4j.propertiesをいじって、Tomcat再起動しようとしたら。。。うん??
メニューのApache Tomcat 4.0の下、(Start Tomcatなんかと同じところ)にログがある。
 なーぜー??

 わかりました。
 ウィリアムのいたずらです。
 (私とその仲間?は、Windows独特の、おかしな現象(いたずら)をこうよんでいます。
  ちなみに、ウィリアムの略称は、ビルです。つまり、ビルゲイツのいたずらといいたい)




 Startメニューを右クリックしてみましょう。

 プロパティダイアログが出てきます。

 そこに、作業ファイルっていうのがあります。
 Start Tomcatの作業ファイルは、

自分のフォルダ\スタート メニュー\プログラム\Apache Tomcat 4.0

  になっています。つまり、スタートメニューの中。
 ログが起動すると、そこの下に、ログファイルを作ろうとするから。

 作業フォルダを違う場所に変えれば、そこの下にできる




 で、さらにおどろいたことに、Tomcatは、javaの上で動いているようだ。
 プロパティダイアログのリンク先を見て知った。

 さらに驚いたことに、私の場合、1.3のjavaが起動するようになっていた。
 道理で、MySQLで、クラスパスに1.4.2のjarのありかを追加しても、Connector/J 3.1(javaなどのプログラムからMySQLのDBアクセスのとき必要)だと、java.lang.NoClassDefFoundError: java/sql/Savepointが出るわけだ。
1.3で動いているんだもん!
(Connector/J 3.1は、1.4.0以上でないと動かない)





うーん、ウィリアムのいたずらだあ!