Search code examples
scalalogginglog4j

scala use same logger into class and companion object


I would try to log using a particular log4j logger called URM that log into a a file into a scala class and I need to use the same logger also in the companion object:

class

class MyClass{
   ...
   val logger = Logger.getLogger("URMLogger")
   logger.info("message log")
   ....
}

companion object

object MyClass{
   ...
   logger.info("message log")
   ...
}

Log4j.properties

...
log4j.logger.URMLogger=DEBUG,URM
log4j.appender.URM=org.apache.log4j.FileAppender
log4j.appender.URM.File=target/URM.log
log4j.appender.URM.layout=org.apache.log4j.PatternLayout
log4j.appender.URM.layout.ConversionPattern=%d %p %t [%c] - %m%n
...

How can I initialize once my logger and use it in both class e object companion?


Solution

  • object MyClass {
      val logger = Logger.getLogger("URMLogger")
    }
    class MyClass {
      import MyClass.logger
      logger.info("Here we go!")
    }