Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何在SBT中禁用特定依赖项的日志记录?_Scala_Sbt_Slf4j_Logback_Slick - Fatal编程技术网

Scala 如何在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

我有以下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/",
  "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>