簡體   English   中英

從Scala驅動程序內部聲明SLF4J記錄器

[英]Declaring an SLF4J logger from inside a Scala driver

我有以下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]似乎並沒有真正解析到任何東西。

因此,一些相關的問題:

  1. 為什么objects不是類? 如果它們不是類,那么將main方法放進去是如何擺脫的呢?
  2. 如何獲得MyApp的SLF4J記錄器?
  1. 對象確實有一個類,但是我不認為它的名字叫對象名。

  2. 只需使用LoggerFactory.getLogger(getClass)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM