SLF4J:类路径包含多个SLF4J绑定。消息在控制台上打印

时间:2015-04-16 09:50:32

标签: logging sbt akka slf4j logback

我想在控制台上打印日志,并将它们写在文件中。在我使用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:file:/ home / sara / .ivy2 / cache / org.slf4j / slf4j]    - simple / jars / slf4j - simple - 1.7.12.jar!/ org / slf4j / impl / StaticLoggerBinder.class] SLF4J:在[jar:file:中找到绑定:   / home / sara / .ivy2 / cache / ch.qos.logback / logback - classic / jars   / logback - classic - 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。 default -dispatcher - 3] INFO   akka.event.slf4j.Slf4jLogger - Slf4jLogger   开始[ArteciateActorSystem - akka.actor。                                                                                     default -dispatcher - 2] INFO   models.AdminUserModels.AdminUserModelsActors.RegularAdminWriteMongoActor    - 收到消息RegularAdminWriteInMongo

之后打印我的其他println语句,请帮助我如何停止显示此消息,同时请不要将我的问题标记为重复,因为在我查看它之前它已经被问到但是它没有解决我的问题..请不要帮助谢谢

1 个答案:

答案 0 :(得分:27)

错误消息已经告诉您需要知道的一切。消息(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就足够了。