我有以下Scala类(MyApp.scala
):
package me.myapp
import org.slf4j.Logger
import org.slf4j.LoggerFactory
object MyApp {
val logger = LoggerFactory.getLogger(classOf[MyApp])
def main(args : Array[String]) : Unit = {
logger.info("Well hello SLF4J!")
}
}
当我运行它时,我收到一个编译器错误:
/Users/myuser/workspace/myapp/src/main/scala/me/myapp/MyApp.scala:7: not found: type MyApp
val logger = LoggerFactory.getLogger(classOf[MyApp])
^
one error found
所以我需要MyApp
成为一个object
(而不是class
),这样我就可以有一个静态main
方法(对于我的可执行 JAR),但似乎,因为MyApp
是一个object
,那个classOf[MyApp]
实际上并没有解决任何事情。
所以一些相关的问题:
- 为什么
objects
不是类?如果它们不是类,那么我到底怎么能侥幸将main
方法放入其中?!?;和 - 如何获得用于
MyApp
的SLF4J记录仪?
- 对象
确实有一个类,但我认为它没有被命名为对象名称。
只需使用 LoggerFactory.getLogger(getClass)