Tomcat Embedded利用時の注意点

はまったのでメモ。

Tomcatには通常使われるサーバー版の他にTomcat Embeddedと呼ばれるライブラリとして利用できる版が用意されている(Embeddedと書かれると組み込みっぽく聴こえるが、他のプログラムに組み込まれるという意味であろう)。

で、このEmbedded版は基本的にはまんまTomcatであり、設定をJavaで書かなければならないことを除けば、まったく同じように使えるのだが、loggingだけはcommons-loggingをそのまま使うよう修正されており、WEB-INF/classesの中にcommons-logging.propertiesなりlog4j.propertiesを置いても使えないようだ。

まぁ、プログラムへの組み込みと考えるとわからなくはないが、ドキュメントに何も書かれていないので困ってしまった。

解決方法はおそらく「ない」ので、Tomcat Embeddedを使う場合は、起動時のクラスパスにcommons-logging.propertiesなどを配置するのが良いのだろう。私の場合は、confフォルダをクラスパスに追加することで対応した。