我有以下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记录器?答案 0 :(得分:1)
对象确实有一个类,但我不认为它被命名为对象名。
只需使用LoggerFactory.getLogger(getClass)