[scala]log4jを使う

メモ。
Javaだとstaticなフィールドで使うのだけれど、scalaはclassとobjectに分かれているので、一瞬悩みます。
遅延評価も有効だろうとの判断からlazyにしています。


これであってるかな?

import org.apache.commons.logging.LogFactory
import org.apache.log4j.xml.DOMConfigurator

// エントリとなるオブジェクト
object Foo {
  DOMConfigurator.configure("./log4j.xml");
  private lazy val logger = LogFactory.getLog(Foo.getClass)

  // ...
  logger.trace("Foo")
  // ...
  def main(args:Array[String]) {
    // ...
  }
}
import org.apache.commons.logging.LogFactory

object Bar {
  private lazy val logger = LogFactory.getLog(Bar.getClass)
}

class Bar {
  import Bar.logger
  // ...
  logger.trace("Bar")
}