Oddwit


Velocityのログ出力をオフにする

Posted in Java by マルコ on the January 14th, 2008

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はよくできていると思う。

Leave a Reply