2012-11-08 34 views
8

我有以下build.sbt文件:如何禁用SBT中特定依赖项的日志记录?

version := "0.1" 

scalaVersion := "2.10.0-RC1" 

scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8") 

resolvers ++= Seq(
    "sonatype releases" at "https://oss.sonatype.org/content/repositories/releases/", 
    "sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/", 
    "typesafe repo" at "http://repo.typesafe.com/typesafe/releases/", 
    "spray repo" at "http://repo.spray.io/" 
) 

libraryDependencies ++= Seq(
    "io.spray"   % "spray-can"   % "1.1-M4.2" 
    ,"io.spray"   % "spray-routing"  % "1.1-M4.2" 
    ,"io.spray"   % "spray-testkit"  % "1.1-M4.2" 
    ,"io.spray"   %% "spray-json"  % "1.2.2"  cross CrossVersion.full 
    ,"com.typesafe.akka" %% "akka-actor"  % "2.1.0-RC1" cross CrossVersion.full 
    ,"org.specs2"  %% "specs2" % "1.12.2" % "test"  cross CrossVersion.full 
    ,"com.typesafe"  % "slick_2.10.0-RC1" % "0.11.2" 
    ,"com.h2database" % "h2"    % "1.3.166" 
    ,"org.xerial"  % "sqlite-jdbc"  % "3.6.20" 
    ,"org.slf4j"   % "slf4j-api"   % "1.6.4" 
    ,"ch.qos.logback" % "logback-classic" % "1.0.7" 
    ,"org.specs2"  % "specs2_2.10.0-RC1" % "1.12.2" % "test" 
    ,"junit"    % "junit"    % "4.8.1"  % "test" 
) 

如何启用为我自己(当前)项目DEBUG级别的报告,但禁用另一。在这种情况下,我不想看到Slick库的调试输出,但仍然希望查看我自己项目的调试日志记录。

+0

在log4j.xml中,您可以为每个库配置日志级别。 – Rajesh

回答

5

在你logback.xml添加一个条目是这样的:

<logger name="com.typesafe.slick" level="INFO"/> 

这意味着,当通过任何类的命名空间com.typesafe.slick获得的记录它会INFO集日志级别。

编辑:这是链接到documentation

+0

很感谢。我这样做,它的工作。我只是希望能够将课程粒度记录包含/排除作为SBT设置的一部分,以避免在不同文件中传播设置。例如,在SBT中,你设置运行级别,例如,测试或运行时,并且以同样的方式,只要告诉它为库设置日志级别就不错了。 – Jack

+0

我不认为这是可能的。设置日志级别是运行时配置,但sbt只能影响编译时间。你也必须有一个logback.xml,所以我没有看到增加更多东西到构建文件的好处。 – drexin

+0

我想这取决于你使用SBT的方式。将logback.xml文件的名称和位置设置为SBT配置的一部分并不少见,它可用于实现所需的效果。我只是希望简化我的设置。 – Jack