Scala 如何在SBT中禁用特定依赖项的日志记录?
我有以下build.sbt文件:Scala 如何在SBT中禁用特定依赖项的日志记录?,scala,sbt,slf4j,logback,slick,Scala,Sbt,Slf4j,Logback,Slick,我有以下build.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/", "sonaty
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"
)
如何为我自己的(当前)项目启用调试级别报告,但为另一个项目禁用它。在这种情况下,我不想看到Slick库的调试输出,但仍然希望看到我自己项目的调试日志记录。在logback.xml中添加如下条目:
<logger name="com.typesafe.slick" level="INFO"/>
这意味着,当通过命名空间com.typesafe.slick
的任何类获取记录器时,它将INFO
设置为日志级别
编辑:这里是指向的链接。要查看您的依赖项记录器的名称,您可以使用
logback.xml
中的标准日志附加器。因此,如果您有以下情况:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{1000} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
其中,记录器名称是您可以在日志输出中看到的部分或完整程序包名称,具体取决于您希望日志设置的粒度。在log4j.xml中,您可以为每个库配置日志级别。非常感谢。我这样做了,它起作用了。我只是希望能够将过程粒度日志包含/排除作为SBT设置的一部分,以避免在不同的文件中传播设置。例如,在SBT中,您可以设置运行级别,例如测试或运行时,以同样的方式,只需告诉它设置库的日志级别就可以了。我认为这是不可能的。设置日志级别是运行时配置,但sbt只能影响编译时。另外,您还必须有一个logback.xml,因此我不认为向构建文件添加更多内容有什么好处。我想这取决于您使用SBT的方式。将logback.xml文件的名称和位置设置为SBT配置的一部分并不少见,这可以用来实现所需的效果。我只是希望简化一下设置。值得注意的是,截至今天(16/1/13),正确的名称是“scala.slick”,而不是AlecZorab评论后的“com.typesafe.slick”。名称不再是“scala.slick”,而是“slick”
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{1000} - %msg%n</pattern>
</encoder>
</appender>
<logger name="net.schmizz.sshj" level="OFF"/>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>