【问题标题】:SLF4J: Class path contains multiple SLF4J bindings. message printed on consoleSLF4J:类路径包含多个 SLF4J 绑定。控制台上打印的消息
【发布时间】:2015-04-16 09:50:32
【问题描述】:

我想在控制台上打印日志并将它们写入文件。在我使用 akka 记录器的 scala 项目中,这里是我的 build.sbt

libraryDependencies ++= Seq("org.mongodb" %% "casbah" % "2.8.0",
                            "org.slf4j" % "slf4j-simple" % "1.7.12",
                            "org.elasticsearch" % "elasticsearch" % "1.5.0",
                            "org.scalatest" %% "scalatest" % "2.2.1" % "test"
                        withSources() withJavadoc(),
                        "org.easymock" % "easymock" % "3.1" withSources() withJavadoc(),
                        "org.mockito" % "mockito-all" % "1.9.5",
                        "com.typesafe.akka" %% "akka-actor" % "2.3.6",
                        "ch.qos.logback" % "logback-classic" % "1.0.9",
                        "com.typesafe.akka" %% "akka-slf4j" % "2.3.9")

这是我的代码的一部分

import akka.event.Logging

val log = Logging(context.system, this)
case RegularAdminWriteInMongo =>
    log.debug("writing to mongo")
    log.info("message received RegularAdminWriteInMongo")

当我在 sbt 中运行我的程序时,会打印以下消息

SLF4J:类路径包含多个 SLF4J 绑定。 SLF4J:找到 绑定在[jar:文件:/home/sara/.ivy2/cache/org.slf4j/slf4j - simple / jars / slf4j - simple - 1.7.12.jar!/org/slf4j / impl / StaticLoggerBinder.class] SLF4J:在 [jar: 文件中找到绑定: /home/sara / .ivy2 / cache / ch.qos.logback / logback - 经典 / jars /logback - 经典 - 1.0.9.jar!/org/slf4j / impl / StaticLoggerBinder.class] SLF4J: 见 http: //www.slf4j.org/codes.html#multiple_bindings 进行解释。 SLF4J:实际绑定类型为[org.slf4j.impl.SimpleLoggerFactory] [ArteciateActorSystem - akka.actor。默认 -dispatcher - 3] 信息 akka.event.slf4j.Slf4jLogger - Slf4jLogger 开始[ArteciateActorSystem - akka.actor。 默认 -dispatcher - 2] 信息 models.AdminUserModels.AdminUserModelsActors.RegularAdminWriteMongoActor - 收到消息 RegularAdminWriteInMongo

在打印了我的其他 println 语句之后,请帮助我如何停止显示此消息,也请不要将我的问题标记为重复,因为在我查看它之前提出的问题,但它不能解决我的问题..请帮忙谢谢

【问题讨论】:

    标签: logging sbt akka slf4j logback


    【解决方案1】:

    错误消息已经告诉您需要知道的一切。消息中提供的链接 (http://www.slf4j.org/codes.html#multiple_binding) 说:

    SLF4J API 旨在一次绑定一个且仅一个底层日志框架。如果类路径中存在多个绑定,SLF4J 将发出警告,列出这些绑定的位置。

    您的类路径包含两个 SLF4J 绑定:

    /home/sara/.ivy2/cache/org.slf4j/slf4j-simple/jars/slf4j-simple-1.7.12.jar

    /home/sara/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.9.jar

    确保您的类路径上只有一个绑定,并且不会再次显示警告。

    总结一下:从你的依赖中移除 slf4j-simple,logback-classic 就足够了。

    【讨论】:

      猜你喜欢
      • 2012-12-11
      • 2016-03-12
      • 2014-05-18
      • 2021-05-19
      • 2020-07-07
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 2012-09-11
      相关资源
      最近更新 更多