日志未显示 Scala Play 2。3.x

Logs not showing up Scala Play 2.3.x

我正在尝试让我的日志显示在我的游戏控制台中。这是我尝试从中记录信息的控制器示例:

import play.api.Logger
object LandingPage extends Controller {
  import ComponentRegistry._
  private val emailForm =
    Form(mapping("id" -> optional(of[Long]), "emailAddress" -> email)(Email.apply _)(Email.unapply _))
  def index = Action {
    Logger.info("Index method inside of LandingPage")
    Ok("INDEX")
  }

  def submit = Action { implicit request =>
    Logger.info("Inside of submit method in Landing Page controller")
    Ok("SUBMIT PAGE")

  }
}

这是我 application.conf

中的内容
#Logger provided to your application:
logger.application=INFO

我需要修改什么才能让日志中的输出显示在我的控制台中?

编辑:这可能是有用的信息。显然我有多个 slf4j 绑定

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/chris/dev/suredbits-web/lib/suredbits-core-assembly-1.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/chris/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

不确定如何摆脱这些多重绑定。

还有我的build.sbt

name := "suredbits-web" 

version := "0.0" 

lazy val root = (project in file(".")).enablePlugins(play.PlayScala, SbtWeb)

scalaVersion := "2.11.4" 

organization := "com.suredbits.web"

libraryDependencies ++= {  
    val sprayV = "1.3.2"
    val akkaV = "2.3.8" 
    val bootstrapV = "3.3.2"
    val webJarsPlayV = "2.3.0"
    Seq(
      "io.spray"            %%  "spray-can"     % sprayV withSources() withJavadoc(),
    "io.spray"            %%  "spray-routing" % sprayV withSources() withJavadoc(),
    "io.spray"            %%  "spray-testkit" % sprayV  % "test" withSources() withJavadoc(),
    "com.typesafe.akka"   %%  "akka-actor"    % akkaV withSources() withJavadoc(),
    "com.typesafe.akka"   %%  "akka-testkit"  % akkaV   % "test" withSources() withJavadoc(),
    "org.specs2"          %%  "specs2-core"   % "2.4.7-scalaz-7.0.6" % "test" withSources() withJavadoc(),
      "org.scalactic"               %%  "scalactic"     %   "2.2.1" % "test" withSources() withJavadoc(),
      "io.spray"            %%  "spray-json"    % "1.3.0" withSources() withJavadoc(),
      "com.github.nscala-time" %% "nscala-time" % "1.6.0" withSources() withJavadoc() ,
    "com.novocode"        % "junit-interface" % "0.10" % "test" withSources() withJavadoc(),
        "org.webjars"         %% "webjars-play"   % webJarsPlayV withSources() withJavadoc(),
        "org.webjars"         % "bootstrap"       % bootstrapV withSources() withJavadoc(), 
        "org.webjars"         % "font-awesome"    % "4.3.0-1", 
        "org.webjars"         % "jquery"          % "2.1.3", 
      "com.typesafe.slick"  %% "slick"          % "2.1.0" withSources() withJavadoc(),
    "com.typesafe.slick"  %% "slick-testkit"  % "2.1.0" % "test" withSources() withJavadoc(), 
      "org.postgresql"      % "postgresql"      % "9.3-1100-jdbc41" withSources() withJavadoc(), 
    "org.scalatestplus"   %% "play" % "1.2.0"   % "test" withSources() withJavadoc()
  )
}

testOptions += Tests.Argument(TestFrameworks.JUnit, "-q", "-v", "-s", "-a")

parallelExecution in Test := false

scalacOptions ++= Seq("-unchecked", "-deprecation", "-feature") 

includeFilter in (Assets, LessKeys.less) := "*.less"

我认为您必须设置根记录器的级别:

logger.root=INFO

Play 应用程序的日志级别默认为 INFO

没有日志输出的原因可能与您的多个 SLF4J 绑定有关。

Play默认使用logback。显然您在 suredbits-core-assembly 项目中包含了一个(不同的?)SLF4J 绑定。

Play 配置 logback 记录器,但可能不是您正在使用的绑定的记录器。即使你包含了 logback 两次,它也可能不会配置 SLF4J 最终使用的记录器,因为不同的 class 加载器。

您不应将任何 SLF4J 绑定定义为核心项目的依赖项:

http://www.slf4j.org/manual.html#libraries

Embedded components such as libraries or frameworks should not declare a dependency on any SLF4J binding but only depend on slf4j-api. When a library declares a transitive dependency on a specific binding, that binding is imposed on the end-user negating the purpose of SLF4J. Note that declaring a non-transitive dependency on a binding, for example for testing, does not affect the end-user.

因此,在您的核心项目中移除对 SLF4J 绑定的依赖,或者至少在组装您的 jar 时排除 org.slf4j.impl 包。