Velocityのログ出力をオフにする
JavaのテンプレートエンジンVelocityは、デフォルトでカレントディレクトリに勝手にログを排出する。ファイル名は「~.log」で、Velocityとは関係のないスタックトレースも何故か勝手に出してくれる。その上アプリを起動するたびに次のようなメッセージがコンソールに出力されてうっとうしい。
2008/01/14 7:16:26 org.apache.velocity.runtime.log.JdkLogChute log
情報: FileResourceLoader : adding path ‘.’
このログ出力を止める方法がすぐには分からなかったのでメモしておく。
結論から言うと
Velocity.setProperty(VelocityEngine.RUNTIME_LOG, "");
でOK。
うそでした。(2008-01-14 16:00修正)
結論から言うと
Velocity.setProperty(VelocityEngine.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.NullLogSystem");
でOKです。ソースはCleaning up those velocity.log files。
これぐらいのことはDeveloper’s Guideにサクっと書いておいてほしい。
ちなみにVelocity.setPropertyはVelocityEngine#setPropertyへのショートカット。
それにしてもVelocityは使い勝手も可読性も悪い。どうしてもコードは行数が多くなるしテンプレートはごちゃごちゃする。やっぱりSmartyはよくできていると思う。